Android控件:高仿微信主UI

高仿微信主UI

之前在Android组件:Fragment切换后保存状态 一文中讲到了Fragment切换后,是如何保存原来的状态的,最重要的就是用add方法取代现在各种教程常见的replace方法。然而我发现有不少App都貌似采用ViewPager + Fragment来做主UI的。于是在Android组件:Fragment切换后保存状态 的基础上加入了ViewPager,看了下微信界面,要高仿就尽力模仿到最像,所以也把ActionBar也修改成微信的样子。

先上一张效果图:

布局

我知道微信这个主UI肯定没我想得那么简单,而实现上面这个效果用了四个主要的元素。

1.ActionBar

这一块还是蛮简单的,就是在res/menu,写一个menu.xml文件就OK了。需要注意的是:如果手机又实体菜单按键的,最常见就是三星啦,可以调用一个方法来让Menu显示在ActionBar上。

() {try {ViewConfiguration config = ViewConfiguration.get(this);Field menuKeyField = ViewConfiguration.class.getDeclaredField(“sHasPermanentMenuKey”);if (menuKeyField != null) {menuKeyField.setAccessible(true);menuKeyField.setBoolean(config, false);}} catch (Exception e) {e.printStackTrace();}}

另外也要注意一下版本之间的问题,例如高版本的Activity就不必继承ActionBarActivity了。

2.Fragment

这一块视乎不是重点,大家如果不熟悉Fragment可以参考我之前写的两篇关于Fragment的文章 – –

3.ViewPager

我们知道ViewPager的使用步骤是:

但是,,我们要加载的是Fragment,这该怎么办呢?其实更加简单,我们只需要把Adapter改为继承FragmentPagerAdapter 就可以了

{public MyPagerAdapter(FragmentManager fm) {super(fm);// TODO Auto-generated constructor stub}@Overridepublic Fragment getItem(int arg0) {// TODO Auto-generated method stubreturn list.get(arg0);}() {// TODO Auto-generated method stubreturn list.size();}}

其中的List元素,由View变成了Fragment..

4.Button

这个Button的使用比第一篇还要简单,因为我们只需要这样就可以了:

public void onClick(View arg0) {switch (arg0.getId()) {…case R.id.tongxunlu_layout:viewPager.setCurrentItem(1, true);break;…}}总结

FragmentPagerAdapter 貌似不能起到切换后自动保存状态的作用,但可以在Fragment里面来操作,来达到这个功能吧。

CSDN下载源码

那么前世我的目光一定一刻都没从你身上离开过吧!

Android控件:高仿微信主UI

相关文章:

你感兴趣的文章:

标签云: