ViewPager和ViewPager+Fragment简单使用
来源:互联网 发布:电脑培训软件机构咨询 编辑:程序博客网 时间:2024/06/08 13:27
ViewPager是support v4包中的页面切换视图,使用时需要导入support.v4的包
xml:声明
//layout中声明 <android.support.v4.view.ViewPager android:id="@+id/m_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> //java:配置和多个view的关系需要使用PagerAdapter 初始化: ViewPager mPager = (ViewPager) findViewById(R.id.m_pager); //定义需要的页面 List<View> list = new ArrayList<View>(); ... list.add(v1); list.add(v2);
定义需要的Adapter适配器
class MyPagerAdapter extends PagerAdapter { private List<View> list; MyPagerAdapter(List<View> list) { this.list = list; } // 配置多少个页面 @Override public int getCount() { return null == list ? 0 : list.size(); } @Override public boolean isViewFromObject(View v, Object obj) { return v == obj; } // 视图移除缓冲区时触发 @Override public void destroyItem(ViewGroup container, int position, Object object) { //获取要移除的视图对象 View v = list.get(position); container.removeView(v); } // 视图进入缓冲区时触发 @Override public Object instantiateItem(ViewGroup container, int position) { View v = list.get(position); // 将进入缓冲区的视图对象,添加到容器 container.addView(v); return v; } }
设置适配器
MyPagerAdapter adapter = new MyPagerAdapter(list); //设置适配器 mPager.setAdapter(adapter);
ViewPager页面滑动监听,需要使用OnPageChangeListener对象来监听// ViewPager的监听private ViewPager.OnPageChangeListener pageChange = new ViewPager.OnPageChangeListener() { // 页面选中 @Override public void onPageSelected(int position) { Log.e("m_tag", "onPageSelected:" + position); } // 界面滑动中(position表示滑动中第一个界面的下标,offset表示第一个界面在屏幕外的比例0-1, 第三个参数表示在屏幕外的像素值) @Override public void onPageScrolled(int position, float offset, int offsetInPixels) { Log.e("m_tag", "onPageScrolled:" + position + " " + offset + " " + offsetInPixels); } // 滑动的状态 @Override public void onPageScrollStateChanged(int state) { Log.e("m_tag", "onPageScrollStateChanged:" + state); }};
设置监听
mPager.setOnPageChangeListener(pageChange);
设置选中的位置
mPager.setCurrentItem(index);
ViewPager+Fragment
ViewPager+Fragment 主要区别在于adapter之间的不同FragmentPagerAdapter或者FragmentStatePagerAdapter,可以帮助ViewPager管理多个Fragment的切换。
public class MyPagerAdapter extends FragmentPagerAdapter { private Fragment[] fragments; public MyPagerAdapter(FragmentManager fm, Fragment[] fragments) { super(fm); this.fragments = fragments; } @Override public Fragment getItem(int position) { return fragments[position]; } @Override public int getCount() { return null == fragments ? 0 : fragments.length; } }
阅读全文
0 0
- ViewPager和ViewPager+Fragment简单使用
- Fragment和ViewPager的简单使用
- Fragment和ViewPager的简单使用
- ViewPager嵌套fragment简单使用
- ViewPager和fragment的使用
- ViewPager 和Fragment的使用
- Fragment和Viewpager相结合使用.
- ViewPager和Fragment的使用
- fragment和viewpager的使用
- Fragment和ViewPager嵌套使用
- TabLayout的简单使用(TabLayout+Fragment+ViewPager)
- Fragment+ViewPager的简单使用 Android
- ViewPager与Fragment结合的简单使用
- Fragment和ViewPager的简单组合
- Fragment和ViewPager的简单实用
- ViewPager、ViewPager和Fragment组合使用的基本用法
- viewpager和Fragment的联合使用
- ViewPager和Fragment的组合使用
- 写时拷贝的两种方案
- Mac下intellij idea 连接数据库并利用hibernate反向生成实体类
- angularjs方式的get与post分析
- MSP430G2xx1系列USI的SPI模式详解
- flask数据用ECharts图表形式展现
- ViewPager和ViewPager+Fragment简单使用
- mysql事务的理解
- Service使用总结
- Go编程基础—并发(concurrency)
- python opencv 资料收集
- Device eth0 does not seem to be present,delaying initialization的解决办法
- CRC检验解析
- Flume整合mysql碰到的自定义source表名问题
- stm32菜鸟自学代码