仿照Android4.0拨号界面实现分页的界面,如下:



1、ViewPager是安卓的扩展包,可以从源代码out/target/common/obj/JAVA_LIBRARIES/android-support-v13-intermediates/classes.jar拷贝,注意是android-support-V13而不是android-support-v4,因为Activity中getFragmentManager()返回的android.app.FragmentManager对象,而v4中FragmentAdapter的构造函数参数类型android.v4.Fragmentmanager,所以你懂的,不兼容,而v13完美兼容。


2、main.xml布局如下:

<?xml version="1.0" encoding="utf-8"?>        

ps:ViewPager加上全路径


3、自定义3个Fragment,Fragment在3.0推出,作用很多,使用方法推荐一个帖子

【eoeandroid索引】android fragment知识汇总
http://www.eoeandroid.com/thread-172624-1-1.html

Fragment的实现如下:

public class Fragment1 extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {View root = inflater.inflate(R.layout.fragmentlayout1, container, false);return root;}}

其中动态加载的布局fragmentlayout.xml如下:

<?xml version="1.0" encoding="utf-8"?>    

Fragment2和Fragment3的实现和1雷同,就不贴出来了


4、Activity中使用ViewPager和Fragment,代码如下:

 

public class FragmentViewPagerTestActivity extends Activity {private final static String TAG = "FragmentViewPagerTestActivity";private final PageChangeListener mPageChangeListener = new PageChangeListener();private ViewPager vp = null;private final int TAB_INDEX1 = 0;private final int TAB_INDEX2 = 1; private final int TAB_INDEX3 = 2;private final int TAB_INDEX_COUNT = 3;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        findView();        initView();        vp.setOnPageChangeListener(mPageChangeListener);        setupFragment1Tab();        setupFragment2Tab();        setupFragment3Tab();        getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        getActionBar().setDisplayShowTitleEnabled(false);        getActionBar().setDisplayShowHomeEnabled(false);            }        private class PageChangeListener implements OnPageChangeListener {    private int mCurrentPosition = -1;    private int mNextPosition = -1;    @Overridepublic void onPageScrollStateChanged(int arg0) {// TODO Auto-generated method stub}@Overridepublic void onPageScrolled(int arg0, float arg1, int arg2) {// TODO Auto-generated method stub}@Overridepublic void onPageSelected(int arg0) {final ActionBar actionBar = getActionBar();if(mCurrentPosition == arg0) {Log.e(TAG , "Previous posion and next position is same");}actionBar.selectTab(actionBar.getTabAt(arg0));mNextPosition = arg0;}public void setCurrentPosition(int position) {mCurrentPosition = position;}        }        private TabListener mTabListener = new TabListener() {    @Overridepublic void onTabReselected(Tab tab, FragmentTransaction ft) {}@Overridepublic void onTabSelected(Tab tab, FragmentTransaction ft) {if(vp.getCurrentItem() != tab.getPosition()) {vp.setCurrentItem(tab.getPosition(),true);}}@Overridepublic void onTabUnselected(Tab tab, FragmentTransaction ft) {}        };        private void setupFragment1Tab() {    Tab tab = getActionBar().newTab();    tab.setText("Fragment1");    tab.setTabListener(mTabListener);    getActionBar().addTab(tab);    }        private void setupFragment2Tab() {    Tab tab = getActionBar().newTab();    tab.setText("Fragment2");    tab.setTabListener(mTabListener);    getActionBar().addTab(tab);    }        private void setupFragment3Tab() {    Tab tab = getActionBar().newTab();    tab.setText("Fragment3");    tab.setTabListener(mTabListener);    getActionBar().addTab(tab);    }       private void findView() {    vp = (ViewPager) findViewById(R.id.viewpagerLayout);    }        private void initView() {    android.app.FragmentManager fm = getFragmentManager();    vp.setAdapter(new MyViewPagerAdapter(fm));    }        public class MyViewPagerAdapter extends FragmentPagerAdapter {public MyViewPagerAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int arg0) {switch(arg0) {case TAB_INDEX1:return new Fragment1();case TAB_INDEX2:return new Fragment2();case TAB_INDEX3:return new Fragment3();}return null;}@Overridepublic int getCount() {return TAB_INDEX_COUNT;}        }    }


PS:getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);指定定位模式为TABs,不能少;




更多相关文章

  1. android通过servlet上传文件到服务器
  2. Android(安卓)Util工具类的封装
  3. Android(安卓)利用viewpager 来实现Frament 有导航条
  4. Android中把集合显示到listview上
  5. Android(安卓)dialog 去除虚拟按键的解决方法
  6. Android输入法切换引导功能
  7. Android切换系统语言,自动更新应用界面显示语言
  8. Android点滴累计
  9. Android自定义dialog从屏幕底部弹出并且充满屏幕宽度

随机推荐

  1. MYSQL 解锁与锁表介绍
  2. Navicat中导入mysql大数据时出错解决方法
  3. mysql 导出CSV文件 并带表头的方法
  4. mysql导出查询结果到csv的实现方法
  5. Windows平台下MySQL安装与配置方法与注意
  6. mysql 使用inet_aton和inet_ntoa处理ip地
  7. mysql 查看当前使用的配置文件my.cnf的方
  8. deepin 2014系统下安装mysql数据库的方法
  9. mysql 搜寻附近N公里内数据的简单实例
  10. MySQL通过触发器解决数据库中表的行数限