实现导航功能 可以左划右划 一个容器 仿view 或者 fragment 微信当行相当于放了4个view
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
1.layout转view
1)View.inflate(context , resource,root); --> Vew.inflate(getApplication(),R.layout.XXX,null);
2.准备适配器
PagerAdapter List<View>
FragmentPagerAdapter List<Fragment>
FragmentStatePagerAdapter List<Fragment>
PagerAdapter
把东西放在ViewList中
建立适配器 继承PagerAdapter
必要方法 包括 getCount()//返回页卡的数量 return viewlist.size() , isViewFromobject()//判断当前View是否来自对象 return arg0 == arg1 即可 , inStantiateItem() // 实例化页卡, destoryItem()//销毁一个页卡
inStantiateItem()
container.addView(ViewList.get(position));
return viewList.get(position);
destoryItem()
container.removeView(ViewList.get(position));
标题 ViewPager的子标签PagerTabStrip //设置标题 还有一个非常类似的 PagerTitleStrip 如果使用这个 那么tab就废了
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<android.support.v4.view.PagerTabStrip
android:id="@+id/Tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom" >
</android.support.v4.view.PagerTabStrip>
</android.support.v4.view.ViewPager>
也是用适配器的方式进行配置
getPageTitle的方法 return titleList.get(position)
可以设置属性
tab.setBackGroud
tab.setTextColor
tab.setDrawFullUnderline(false)//设置下划线存不存在
tab.setTabindicatirColor() //设置下划线背景色
FragmentPagerAdapter
需要将MainActivity改为FragmentActivity
FragmentStatePagerAdapter 会有动态管理内存的习惯
多两个方法(不用改写)
inStantiateItem()
destoryItem()
监听器 onPageChangeListener 监听划到第几页
方法 onSelectSelected
绑定监听器