因为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方法过时)相关推荐

  1. Fragment的setUserVisibleHint方法实现延时加载

    一个ViewPager中存在三个Fragment页面的时候,当默认是第一个页面可见,并加载数据进而显示界面.那么在后台就会收集到紧邻的那个Fragment的信息数据了. 如何处理呢?其实很简单,Fra ...

  2. Android移动应用开发之Viewpage2+fragment实现微信滑动界面的效果

    文章目录 布局 viewpager2 fragment adapter 实现的效果如下: 滑动界面能够实现界面的跳转. 点击下面按钮同样实现界面的跳转. 布局 最下面的导航栏,单独写了个布局文件: & ...

  3. 在fragment中简单应用百度地图定位

    一个fragment中简单应用,就项目而言可能没有框架但是可以使用 public class app_safety_Fragment extends Fragment implements OnGet ...

  4. Fragment的简单使用二

    推荐: 普通的 Fragment 的简单使用 侧面点击的 Fragment (类似于电商类) 今日写了一个侧面点击的 Fragment (类似于电商类),做一下记录,下面是效果图: 下面是主要内容: ...

  5. 【Kotlin】Kotlin 单例 ( 懒汉式 与 恶汉式 | Java 单例 | Kotlin 单例 | 对象声明 | 伴生对象 | get 方法 | ? 与 !! 判空 )

    文章目录 I . 单例的懒汉式与恶汉式 II . Java 中的懒汉式与恶汉式 III . Kotlin 中对应 Java 的懒汉式与恶汉式 IV . Kotlin 对象 ( object ) 声明 ...

  6. D3D中简单的截图方法 (转)

    [ZT]D3D中简单的截图方法 试了下,果然可以. 在渲染完所有东东后(Present之前) 获得BackBuffer表面 然后用D3DX的函数保存 void ScreenShot (char *fi ...

  7. 零基础学习UI设计有哪些简单有效的方法

    UI设计的普及让越来越多的人对UI有了重新的认识,很多企业对UI设计这个岗位都是非常重视的,如今很多零基础学员都想要转行做UI设计,那么针对零基础学习UI设计有哪些简单有效的方法呢?来看看下面的详细介 ...

  8. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  9. Android学习笔记之Fragment的两种使用方法

    一.第一种方法: (1)Fragment的第一种使用方法是使用fragment加载单独的布局文件:(也就是xml的方式实现) 结构如下: activity_main.xml主要是在一个线性布局中添加两 ...

  10. js/jq基础(日常整理记录)-2-一个简单的js方法实现集合的非引用拷贝

    一.一个简单的js方法实现集合拷贝 做web项目的时候,少不了和js中的数组,集合等对象接触,那么你肯定会发现,在js中存在一个怪异的现象就是数组和集合的拷贝都是地址复制,并不是简单的数据的拷贝. 举 ...

最新文章

  1. Git 2.18版本发布:支持Git协议v2,提升性能
  2. 【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)
  3. python调用大漠找图_[教程贴]按键精灵调用大漠插件后台找图示例
  4. 1070 Bash游戏 V4
  5. netty并发量一般多少_Netty框架简介
  6. 教你直白的理解贝塞尔曲线???
  7. PRML第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
  8. GO实例3 Slice append打印
  9. 中学图书室管理用计算机,中学“学生电子阅览室管理制度”
  10. java写的exe程序反编译_【Jad】利用jdk自带的jad.exe实现批量反编译class文件
  11. vtkImageData处理之阈值分割
  12. 破解vba工程密码——VBA代码
  13. APM时代的质量保障之路:腾讯互娱品质管理部性能负责人访谈
  14. 小新吃上黑苹果13.1
  15. 邮件访问协议!IMAP协议解析
  16. Python爬虫自学与实战,爬一下自己的博客文章
  17. IOS手游开发设计与实现
  18. 省略to的动词不定式八种情况
  19. jQuery的几种显示隐藏方法
  20. 【P05】小巧简单的 OP+ClassAB 低压供电耳放

热门文章

  1. 微信小程序后端用python_Python开发微信小程序后端开发小坑
  2. 极速pdf android,极速PDF阅读器 V3.0.0.2003 官方版[安卓软件]
  3. linux 如何安装whl文件,linux安装whl文件
  4. linux文件管理系统答辩ppt,Linux操作系统ppt--第9次文件管理分析.ppt
  5. gamit添加未知天线
  6. C/C++的刷题练习之牛客网,一个友好的网站
  7. JUCE框架教程(1)——Projucer入门
  8. Android限制录制屏幕无声音,屏幕录制没有声音如何解决?
  9. Audition 如何录制电脑内部声音
  10. 高阶整车域控制器的详细设计方案