Tab
2016-04-25 22:20
387 查看
慕课 仿微信的tab
------------用ViewPager实现------------------------
下边布局四个imagebutton 下个有textview,中间viewpager
给viewpager设置adapter 重写的adapter继承自pageradapter
必须重写两方法,getcount(return mViews.size()),isViewFromObject(){return arg0 == arg1}
还需重写两个方法 instantiateItem{ View view = mViews.get(position); container.addView(view) ; return view;}
destroyItem{ container.removeView(mViews.get(position));
下边四个按钮都设置点击监听事件, 判断id来设置mViewPager的当前页面 mViewpager.setCurrentItem(1);
在这之前先把所有的按钮都设置为暗色 当点击时改色
滑动ViewPager四个按钮也要变化 给mViewPager设置页面变化的监听器。
mViewPager.setOnPagerChangeListener(new OnPagerChangeListenerr()....)
在页面选中的方法中通过判断id来给四个按钮设置图
给imageButton设置clickcble为false 不让他点击 它的父就会处理,我们已经做了处理
---------------Fragment ---------
fm = getFragmentManager()
trransaction = fm.beginTransaction()
hideFragment(trransaction )
trransaction .commit()
。。。。。。。
hideFragment(trransaction ){
if(mTab01!=null)
transaction.hide(mTab01);
}
在要显示的地方
if(mTab01==null)
mTab01= new Fragment1;
transaction.add(R.id.content,mTan01)
else{
transaction.show(mTab01);
}
(用v4包下的Fragment的话 MainAcitivity继承FragmentActivity ,用getSupportFragmentManager,记住都用同一个包下的Fragment)
----------------------FragmentPagerAdapter-------------------------------------(Google推荐)
用Fragment不能左右拖动。初始化各管各,适配也好
让Fragment也能拖动 ViewPager+Fragment
给ViewPager设置一个 new FragmentPagerAdaoter
给ViewPager.setOnPagerChangeListener(new OnPagerChangerListener())
在页面选中的方法中 getCurrentItem
用ViewPager,所用的Fragment都在mainActivity中初始化 每个Fragment中可能有很多初始化内容,造成mainactivity内容多,不宜维护
-------------------------
优化布局层次
include
merge
ViewStub
-----------------------------------------------------------
fm = getFragmentManager()
trransaction = fm.beginTransaction()
.....
trransaction .commit()
------------用ViewPager实现------------------------
下边布局四个imagebutton 下个有textview,中间viewpager
给viewpager设置adapter 重写的adapter继承自pageradapter
必须重写两方法,getcount(return mViews.size()),isViewFromObject(){return arg0 == arg1}
还需重写两个方法 instantiateItem{ View view = mViews.get(position); container.addView(view) ; return view;}
destroyItem{ container.removeView(mViews.get(position));
下边四个按钮都设置点击监听事件, 判断id来设置mViewPager的当前页面 mViewpager.setCurrentItem(1);
在这之前先把所有的按钮都设置为暗色 当点击时改色
滑动ViewPager四个按钮也要变化 给mViewPager设置页面变化的监听器。
mViewPager.setOnPagerChangeListener(new OnPagerChangeListenerr()....)
在页面选中的方法中通过判断id来给四个按钮设置图
给imageButton设置clickcble为false 不让他点击 它的父就会处理,我们已经做了处理
---------------Fragment ---------
fm = getFragmentManager()
trransaction = fm.beginTransaction()
hideFragment(trransaction )
trransaction .commit()
。。。。。。。
hideFragment(trransaction ){
if(mTab01!=null)
transaction.hide(mTab01);
}
在要显示的地方
if(mTab01==null)
mTab01= new Fragment1;
transaction.add(R.id.content,mTan01)
else{
transaction.show(mTab01);
}
(用v4包下的Fragment的话 MainAcitivity继承FragmentActivity ,用getSupportFragmentManager,记住都用同一个包下的Fragment)
----------------------FragmentPagerAdapter-------------------------------------(Google推荐)
用Fragment不能左右拖动。初始化各管各,适配也好
让Fragment也能拖动 ViewPager+Fragment
给ViewPager设置一个 new FragmentPagerAdaoter
给ViewPager.setOnPagerChangeListener(new OnPagerChangerListener())
在页面选中的方法中 getCurrentItem
用ViewPager,所用的Fragment都在mainActivity中初始化 每个Fragment中可能有很多初始化内容,造成mainactivity内容多,不宜维护
-------------------------
优化布局层次
include
merge
ViewStub
-----------------------------------------------------------
fm = getFragmentManager()
trransaction = fm.beginTransaction()
.....
trransaction .commit()
相关文章推荐
- oracle用户权限、角色管理详解
- SDOI R1 day2 T1 生成魔咒 后缀自动机
- [Lintcode] Unique Paths I,II
- Cocos2D 初步了解
- mysql-5.6.28源码安装 整个安装过程详细教程,详解
- 有向图的拓扑排序算法JAVA实现
- 415 评论博客
- c查漏补缺
- C++ 类的保护继承与构造函数
- Ubuntu 16.04 LTS 初体验
- 两篇很牛的vim使用技巧
- 关于Base64编码解码
- 生产消费模型demo
- 重要性!important
- 多部话机共享同一个号码的各种情况分析
- HM编码器端提取PU分割模式及CU深度信息
- 战略、业务流程和知识管理
- hdu 1102 Constructing Roads
- Android中的线程池
- [svc][op]vim常用命令汇总