Android 之 ViewPager

ViewPager 是 Android 兼容包 v4 提供的东西,经常用户启动页、Tab 页和热点轮播。


这里有个 PagerAdapter ,类似于 ListView 的 adapter ,但又是两个完全不同的东西。

在实现 PagerAdapter 时,要实现

  • instantiateItem - 提供 View 并绑定到 container ;
  • destroyItem - 把 View 从 container 移除;
  • isViewFromObject  - 判断 instantiateItem 返回的 item 是否是参数里的 View 是相关的。

当用在 Tab 页时,经常用会到 PagerAdapter 的子类 FragmentPagerAdapter。

另外,使用 JazzyViewPager 开源框架,能实现很多切换效果和过程控制。


当用在热点轮播时,可以使用 AutoScrollViewPager 开源框架;

如果 Tab 页已经是 FragmentPager ,里面再有可以上下滚动的页面,头部还有热点轮播,看网上的人很多都会在这里遇到问题,也可以搜到很多解决方法。

我现在是里面有 ListView,再放热点轮播放在 ListView 的 header;

遇到的问题时热点轮播的左右滑动时,如果稍上下动了一下,左右滑动就会被取消,体验不太好;

另外,从左右边缘开始滑动时,响应的是外面的 pager ,热点轮播响应不了。

怎么解决呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ViewPager是一个Android支持库中的类,它允许用户在不同的页面之间进行滑动。在Android Studio中使用ViewPager的步骤如下: 1. 在build.gradle文件中添加ViewPager的依赖: ``` dependencies { implementation 'com.android.support:viewpager:28.0.0' } ``` 2. 在XML布局文件中添加ViewPager: ``` <android.support.v4.view.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 3. 创建一个FragmentPagerAdapter或FragmentStatePagerAdapter的子类: ```java public class MyPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } ``` 4. 在Activity或Fragment中设置ViewPager的适配器: ```java MyPagerAdapter adapter = new MyPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new Fragment1(), "Fragment 1"); adapter.addFragment(new Fragment2(), "Fragment 2"); adapter.addFragment(new Fragment3(), "Fragment 3"); ViewPager viewPager = findViewById(R.id.view_pager); viewPager.setAdapter(adapter); ``` 5. (可选)如果你想要使用TabLayout来帮助用户切换页面,可以使用以下代码: ```java TabLayout tabLayout = findViewById(R.id.tab_layout); tabLayout.setupWithViewPager(viewPager); ``` 这样就可以在Android应用中使用ViewPager了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值