
概述需求ListViewPage承载多个Fragment每个Fragment都以LazyFragmeng呈现Fragment首次可见时出现数据加载页面Fragmeng再次可见时保留内容Fragment中内容全部为RecyclerViewViewPage承载多个Fragment首先酷安的
首页是很典型的TabLayout+FragmentViewPage实现Fragment所
需求List
VIEwPage承载多个Fragment
每个Fragment都以LazyFragmeng呈现
Fragment首次可见时出现数据加载页面
Fragmeng再次可见时保留内容
Fragment中内容全部为RecyclerVIEw
VIEwPage承载多个Fragment
首先酷安的首页是很典型的TabLayout + FragmentVIEwPage实现Fragment
所以这里可以使用最典型的通用方案
首先是布局代码 非常简朴的TabLayout + VIEwPage
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <androID.support.design.Widget.TabLayout androID:ID="@+ID/tab_layout" androID:layout_wIDth="match_parent" androID:layout_height="48dp" app:layout_scrollFlags="snap" app:tabIndicatorcolor="#ffff8c" app:tabSelectedTextcolor="#645332" app:tabTextcolor="#000000" />
<androID.support.v4.vIEw.VIEwPager androID:ID="@+ID/vIEwPager" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_margintop="48dp"/>
|
之后定义一个dataClass 将Fragment和它的Title绑定
1 2 3 4
| data class ( val Title: String, val fragment: Fragment )
|
在MainActivity中调用initTabbar方法初始化数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| private fun initTabbar() { val fragmentTabs = ArrayList<FragmentTab>() fragmentTabs.add(FragmentTab("Title1",BlankFragment())) fragmentTabs.add(FragmentTab("Title2",BlankFragment2())) fragmentTabs.add(FragmentTab("Title3",BlankFragment3())) val adapter = object : FragmentPagerAdapter(supportFragmentManager) { overrIDe fun getItem(i: Int): Fragment { return fragmentTabs[i].fragment } overrIDe fun getCount(): Int { return fragmentTabs.size } overrIDe fun getPageTitle(position: Int): CharSequence? { return fragmentTabs[position].Title } } vIEwPager.adapter = adapter tab_layout.setupWithVIEwPager(vIEwPager, true) tab_layout.getTabAt(1)!!.select() }
|
每个Fragment都以LazyFragmeng呈现
LazyFragment : VIEwPager + Fragment 实现左右切换的页面,默认会加载当前Fragment和相邻的Fragment数据,为了更好的用户体验,最好是切到当前Fragment再加载数据,这样会为用户节约很多流量,另外VIEwPager的setoffscreenPagelimit(n)可以设置缓存页面,当前页面的相邻n各页面都会被缓存。做到当前Fragment加载数据需要重写setUserVisibleHint方法,一般网上Fragment 懒加载实现方法都是如下这样的:
总结
以上是内存溢出为你收集整理的关于酷安首页Fragment的尝试实现全部内容,希望文章能够帮你解决关于酷安首页Fragment的尝试实现所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)