kotlin的Viewpage2+Fragment的简单使用(setUserVisibleHint方法过时)
因为setUserVisibleHint方法过时,本文采用Viewpage2进行搭建
一个超级简单的demo,记录一下使用笔记,项目框架采用MVVM模式,以及DataBinding,所有控件都是通过DataBinding获取
首先看一下布局文件
<androidx.viewpager2.widget.ViewPager2android:id="@+id/viewPage"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="40dp"android:layout_gravity="bottom"android:orientation="horizontal"><TextViewandroid:id="@+id/home_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:text="首页"android:textColor="@color/black" /><Viewandroid:layout_width="1dp"android:layout_height="match_parent"android:background="@color/black" /><TextViewandroid:id="@+id/center_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:text="发现"android:textColor="@color/black" /><Viewandroid:layout_width="1dp"android:layout_height="match_parent"android:background="@color/black" /><TextViewandroid:id="@+id/me_tv"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:gravity="center"android:text="我的"android:textColor="@color/black" /></LinearLayout>
底部是一些按钮
MainActivity对viewpage的管理
private val homeFragment: HomeFragment = HomeFragment()private val centerFragment: CenterFragment = CenterFragment()private val meFragment: MeFragment = MeFragment()private val fragmentList: MutableList<Fragment> = ArrayList<Fragment>()init {fragmentList.add(homeFragment)fragmentList.add(centerFragment)fragmentList.add(meFragment)}override fun initialize(savedInstanceState: Bundle?) {binding.viewPage.adapter =FragmentViewPagerAdapter(this.supportFragmentManager,fragmentList,LifecycleRegistry(this).apply {currentState = Lifecycle.State.RESUMED})binding.viewPage.offscreenPageLimit = 3binding.viewPage.setCurrentItem(1, false)binding.viewPage.registerOnPageChangeCallback(object : ViewPager2.OnPageChangeCallback() {override fun onPageSelected(position: Int) {updataView(position, true)}})}
对应ViewpageAdapter的FragmentViewPagerAdapter文件
class FragmentViewPagerAdapter(frgManager: FragmentManager,fragments: MutableList<Fragment>,lifecycle: Lifecycle,
) :FragmentStateAdapter(frgManager, lifecycle) {private val fragmentList: MutableList<Fragment> = fragmentsfun addFragment(fragment: Fragment) {fragmentList.add(fragment)}override fun getItemCount(): Int {return fragmentList.size}override fun createFragment(position: Int): Fragment {return fragmentList[position]}}
kotlin的Viewpage2+Fragment的简单使用(setUserVisibleHint方法过时)相关推荐
- Fragment的setUserVisibleHint方法实现延时加载
一个ViewPager中存在三个Fragment页面的时候,当默认是第一个页面可见,并加载数据进而显示界面.那么在后台就会收集到紧邻的那个Fragment的信息数据了. 如何处理呢?其实很简单,Fra ...
- Android移动应用开发之Viewpage2+fragment实现微信滑动界面的效果
文章目录 布局 viewpager2 fragment adapter 实现的效果如下: 滑动界面能够实现界面的跳转. 点击下面按钮同样实现界面的跳转. 布局 最下面的导航栏,单独写了个布局文件: & ...
- 在fragment中简单应用百度地图定位
一个fragment中简单应用,就项目而言可能没有框架但是可以使用 public class app_safety_Fragment extends Fragment implements OnGet ...
- Fragment的简单使用二
推荐: 普通的 Fragment 的简单使用 侧面点击的 Fragment (类似于电商类) 今日写了一个侧面点击的 Fragment (类似于电商类),做一下记录,下面是效果图: 下面是主要内容: ...
- 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )
文章目录 I . 单例的懒汉式与恶汉式 II . Java 中的懒汉式与恶汉式 III . Kotlin 中对应 Java 的懒汉式与恶汉式 IV . Kotlin 对象 ( object ) 声明 ...
- D3D中简单的截图方法 (转)
[ZT]D3D中简单的截图方法 试了下,果然可以. 在渲染完所有东东后(Present之前) 获得BackBuffer表面 然后用D3DX的函数保存 void ScreenShot (char *fi ...
- 零基础学习UI设计有哪些简单有效的方法
UI设计的普及让越来越多的人对UI有了重新的认识,很多企业对UI设计这个岗位都是非常重视的,如今很多零基础学员都想要转行做UI设计,那么针对零基础学习UI设计有哪些简单有效的方法呢?来看看下面的详细介 ...
- Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法
Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...
- Android学习笔记之Fragment的两种使用方法
一.第一种方法: (1)Fragment的第一种使用方法是使用fragment加载单独的布局文件:(也就是xml的方式实现) 结构如下: activity_main.xml主要是在一个线性布局中添加两 ...
- js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝
一.一个简单的js方法实现集合拷贝 做web项目的时候,少不了和js中的数组,集合等对象接触,那么你肯定会发现,在js中存在一个怪异的现象就是数组和集合的拷贝都是地址复制,并不是简单的数据的拷贝. 举 ...
最新文章
- Git 2.18版本发布:支持Git协议v2,提升性能
- 【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)
- python调用大漠找图_[教程贴]按键精灵调用大漠插件后台找图示例
- 1070 Bash游戏 V4
- netty并发量一般多少_Netty框架简介
- 教你直白的理解贝塞尔曲线???
- PRML第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
- GO实例3 Slice append打印
- 中学图书室管理用计算机,中学“学生电子阅览室管理制度”
- java写的exe程序反编译_【Jad】利用jdk自带的jad.exe实现批量反编译class文件
- vtkImageData处理之阈值分割
- 破解vba工程密码——VBA代码
- APM时代的质量保障之路:腾讯互娱品质管理部性能负责人访谈
- 小新吃上黑苹果13.1
- 邮件访问协议!IMAP协议解析
- Python爬虫自学与实战,爬一下自己的博客文章
- IOS手游开发设计与实现
- 省略to的动词不定式八种情况
- jQuery的几种显示隐藏方法
- 【P05】小巧简单的 OP+ClassAB 低压供电耳放
热门文章
- 微信小程序后端用python_Python开发微信小程序后端开发小坑
- 极速pdf android,极速PDF阅读器 V3.0.0.2003 官方版[安卓软件]
- linux 如何安装whl文件,linux安装whl文件
- linux文件管理系统答辩ppt,Linux操作系统ppt--第9次文件管理分析.ppt
- gamit添加未知天线
- C/C++的刷题练习之牛客网,一个友好的网站
- JUCE框架教程(1)——Projucer入门
- Android限制录制屏幕无声音,屏幕录制没有声音如何解决?
- Audition 如何录制电脑内部声音
- 高阶整车域控制器的详细设计方案