IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 安卓學習記錄-11-使用ViewPager -> 正文阅读

[移动开发]安卓學習記錄-11-使用ViewPager

ViewPager的效果:可以实现多页面左右滑动。

简单分析:

①左右滑动生成的每个页面,其实是生成的每个Fragment。因此ViewPager组件的adapter控制器实例需要绑定一个fragmentmanager来管理Fragment的生成。

②类似前面学的RecycleListView,需要实现一些内部机制。ViewPager需要覆盖方法getItem(int positon)和getCount()。

③ViewPager既然是多页面滑动,就有初始页面是哪个的问题。可以通过ViewPager.setCurrentItem(int i)来指定。

④有①知道,ViewPager可以容纳Fragment。类比前面学的,ViewPager组件可以放在activity视图中。

代码实现:

①组件布局

<androidx.viewpager.widget.ViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_crime_pager_view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</androidx.viewpager.widget.ViewPager>

②组件实例化

private ViewPager mViewPager;
mViewPager = (ViewPager) findViewById(R.id.activity_crime_pager_view_pager);

③设置adapter

        FragmentManager fm = getSupportFragmentManager();
        mViewPager.setAdapter(new FragmentStatePagerAdapter(fm) {
            @NonNull
            @Override
            public Fragment getItem(int position) {
                Crime crime = mCrimes.get(position);
                return CrimeFragment.newInstance(crime.getID());
            }
            @Override
            public int getCount() {
                return mCrimes.size();
            }
        });

正如前面所说,设置adapter时绑定了FragmentManager 。

getItem方法:每次滑动时,根据滑动页面的位置返回特定的Fragment实例。

getCout方法:让系统预知要载入多少的页面,大于0才可以正常滑动。

④初始化页面

③中只是覆盖了滑动时会调用的方法,而初始开始ViewPager所在的activity时,初始页面默认为第一张。(显示position = 0时的fragment0对应的视图和数据)。有时需要指定初始ViewPager。

mViewPager.setCurrentItem(i);

这个方法要在③后调用才有效。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-02-09 20:49:02  更:2022-02-09 20:49:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 14:58:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码