关于酷安首页Fragment的尝试实现

关于酷安首页Fragment的尝试实现,第1张

概述需求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 懒加载实现方法都是如下这样的:

1
2
3
4
5
6
大专栏
总结

以上是内存溢出为你收集整理的关于酷安首页Fragment的尝试实现全部内容,希望文章能够帮你解决关于酷安首页Fragment的尝试实现所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1065302.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存