viewpage2简单实现tablayout
viewpage2本身自带了懒加载模式,十分人性化。
class TabLayoutActivity : AppCompatActivity() {private lateinit var mPagerAdapter: TabPagerAdapteroverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_tablayout)mPagerAdapter = TabPagerAdapter(this)initTab()// initOther()}private fun initOther(){val joinStr1 = arrayOf("a","b","c","d").joinToString(separator = "",prefix = "前缀",postfix = "后缀",limit = 3,truncated = "····").apply {print(this)}}private fun initTab() {val titles = arrayListOf("精选","体育","巴萨","购物","明星","视频","健康","励志","图文","本地","动漫","搞笑","舞蹈","其他")val fragments = ArrayList<Fragment>()titles.indices.map { i->fragments.add(TestFragment())}mPagerAdapter.setNewFragments(fragments)viewpager.orientation = ViewPager2.ORIENTATION_HORIZONTALviewpager.adapter = mPagerAdapterTabLayoutMediator(tabs, viewpager,TabLayoutMediator.TabConfigurationStrategy { tab, position -> tab.text = titles[position] }).attach()viewpager.registerOnPageChangeCallback(object :ViewPager2.OnPageChangeCallback(){})}
class TestFragment : Fragment() {override fun onCreateView(inflater: LayoutInflater,container: ViewGroup?,savedInstanceState: Bundle?): View? {return inflater.inflate(R.layout.fragment_item_one, container, false)}override fun onViewCreated(view: View, savedInstanceState: Bundle?) {super.onViewCreated(view, savedInstanceState)tv_item.text = javaClass.nametv_item.background = ContextCompat.getDrawable(requireContext(), R.mipmap.bianpao)}
}
class TabPagerAdapter(fragmentActivity: FragmentActivity) : FragmentStateAdapter(fragmentActivity) {private val mFragmentList = ArrayList<Fragment>()fun setNewFragments(data: ArrayList<Fragment>) {if (data.isNotEmpty()) {mFragmentList.clear()mFragmentList.addAll(data)notifyDataSetChanged()}}fun removeFragment(position: Int) {if (mFragmentList.size > position) {mFragmentList.remove(mFragmentList[position])notifyDataSetChanged()}}override fun getItemCount(): Int {return mFragmentList.size}override fun createFragment(position: Int): Fragment {return mFragmentList[position]}}
viewpage2简单实现tablayout相关推荐
- Android开发之简单修改TabLayout默认文字大小的方法(亲测可用)
很简单,先看图: 这是比较小的12sp 我们看下大字体28sp的 实际上很简单,给TabLayout设置一个style即可 划重点!style一定要继承TextAppearance.Design.Ta ...
- ViewPage2简单使用
为了解决ViewPager的懒加载问题,搜了一圈发现谷歌推出了升级版ViewPager2,貌似自带就懒加载.升级也十分简单 build.gradle 添加依赖 implementation " ...
- android view padding,记一次tablayout的tabView偷偷自带padding的问题
这次故事主人翁还是tablayout,在github看官方demo的时候https://github.com/googlesamples/android-media-controller,效果图有一个 ...
- TabLayout的使用和自定义红点消息提示
Tab+ViewPager可以说是Android开发中非常常见的布局了,以前实现tab布局一般使用LinearLayout或者HorizontalScrollView,还需要自己监听ViewPager ...
- TabLayout+ViewPager+Fragmet+RecyclerView结合的小demo
前两天想熟悉一下tablayout,所以就弄了个特别简单的tablayout+viewpager+fragmet+recyclerview结合的小demo.虽然特别简单,但还是遇到了不少问题. tab ...
- android UI
A015-布局之LinearLayout good 巫山老妖 Android UI开发: 横向ListView(HorizontalListView)及一个简单相册的完整实现 (附源码下载) Andr ...
- Material Design控件使用(二)
本篇接着之前的Material Design控件总结(一)往下学习support design包下其余控件,如果对Material Design不太熟悉的同学最好把第一篇看完再来看第二篇效果更好 本篇 ...
- Android开源库V - Layout,适用于电商首页、活动页多布局的Layout
转载至:http://blog.csdn.net/carson_ho/article/details/71077193 感谢Carson_Ho分享 前言 V- Layout 是阿里出品的基础 UI 框 ...
- Android TabLayout(选项卡布局)简单用法实例分析
本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...
- tablayout 增加数字小标_为TabLayout添加角标的最简单方法
一.前言 在开发中,我们常常需要ViewPager结合Fragment一起使用,来实现多页签的切换效果.在以前,我们有以下一系列第三方库来帮我们实现: 而现在,我们可以使用Design support ...
最新文章
- Kali渗透测试——UPNP网关发现工具Miranda
- springboot 项目将本地引用打进jar包
- 剑指offer全套题解:Python版
- Java双等号,Equals(),HashCode()小结
- WPF WebBrowser 加载 html ,出现安全警告, 运行 脚本和 activeX 控件,
- 【POJ】【最小生成树】1789 Truck History
- 机器学习:算法模型:决策树
- jeecg输入中文查询导表为空_学术利器—SCI期刊影响因子查询/中文核心期刊查询系统更新...
- 从零开始学java(2)--java中命名的明规则与潜规则
- SQL注入学习part03:(结合sqli-libs学习:21-30关)
- js table 生成序号_JS自动为表格增加序号
- Unity 绘制物体运动轨迹
- 图片无缝滚动BootStrap 轻松实现
- 重庆航天职业技术学院计算机宿舍,2019年重庆航天职业技术学院寝室宿舍条件与学校食堂环境图片...
- ROS 机器人操作系统
- Hive--窗口函数
- python爬虫项目实训报告背景_项目实战 | Python爬虫概述与实践(一)
- 气象统计方法短期气候预测代码汇总
- 从业务架构师视角解读区块链
- 豆瓣电影:TOP250榜单爬虫