首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

TabLayout和ViewPager在方向改变后消失

TabLayout和ViewPager是Android开发中常用的两个组件,用于实现页面切换和导航功能。

TabLayout是一个水平的导航栏,通常位于页面顶部或底部,用于显示多个标签页,用户可以通过点击标签页来切换页面内容。TabLayout可以根据标签页的数量自动调整宽度,支持滑动和固定模式,可以自定义标签样式和指示器样式。

ViewPager是一个可滑动的容器,用于展示多个页面,每个页面对应一个Fragment或View。ViewPager可以通过滑动或点击TabLayout的标签页来切换页面内容,支持左右滑动切换页面,也可以通过设置动画效果来实现页面切换的过渡效果。

当屏幕方向改变时,TabLayout和ViewPager默认会重新创建并重新加载页面内容。为了避免页面切换后数据的丢失,可以通过保存和恢复状态的方式来保持页面数据的一致性。可以在Activity的onSaveInstanceState和onRestoreInstanceState方法中保存和恢复ViewPager的当前页面索引,以及TabLayout的选中状态。

在Android开发中,可以使用TabLayout和ViewPager来实现各种功能,例如底部导航栏、标签页切换、图片浏览器等。通过结合不同的Fragment或View,可以实现多种页面布局和交互效果。

腾讯云提供了一系列与移动开发相关的产品和服务,包括移动推送、移动分析、移动测试等。其中,推荐的与TabLayout和ViewPager相关的产品是腾讯移动分析(https://cloud.tencent.com/product/ma)和腾讯移动推送(https://cloud.tencent.com/product/tpns),可以帮助开发者实现用户行为分析和消息推送功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout

exitUntilCollapsed: 同样顾名思义,这个flag时定义何时退出,当你定义了一个minHeight,这个view将在滚动到达这个最小高度的时候消失。...exitUntilCollapsed"> 记住:我们刚才上面也说了AppBarLayout是一个竖直方向的线性布局...除此之外,设计 Toolbar 的时候,Google也留给了开发者很多可定制修改的余地,这些可定制修改的属性API文档中都有详细介绍,如: 设置导航栏图标; 设置App的logo; 支持设置标题子标题...TabLayout提供一个水平布局来显示选项卡。TabLayout一般都是配合ViewPager一起来使用。...如果设计的需求不要求选项卡在切换时附带有图标的切换效果,仅仅文字的颜色发生变化以响应用户的点击事件,那么TabLayoutViewPager建立联系可以用官方提供的方法,它可以做到交互双向联动,也就是点击

2.3K90

使用CoordinatorLayout打造各种炫酷的效果

结合ViewPager ? 结合ViewPager的视觉特差 ? ---- AppBarLayout 它是继承与LinearLayout的,默认 的 方向 是Vertical ?...int SCROLL_FLAG_ENTER_ALWAYS_COLLAPSED 另一种enterAlways,但是只显示折叠的高度。...其实相对于前 一个例子,只是把 摆放RecyclerView 的位置替换成ViewPager而已,为了有页面导航器的效果,再使用 TabLayout而已,而TabLayout 我们滑动的时候最终会停靠在...TabLayout mViewPager = (ViewPager) findViewById(R.id.viewpager); mTabLayout = (TabLayout...的变化 从前面的描述我们已经知道当 没有指定app:layout_scrollFlags的时候,最终TabLayout会静止,不会随着滑动的 时候消失不见 拓展 如果我们仅仅 改变CollapsingToolbarLayout

5K10
  • 使用TabLayout看这篇就够了

    代码逻辑上,我们setupWithViewPager()方法最终remove掉了标题栏之后再重新设置标题,这样就不会出现标题栏消失的问题了。...好像ViewPagerTabLayout之间的纽带断了,不会联动了。那我们就模仿setupWithViewPager()方法的源码让它们联动起来。...当然这个需求本身还是很简单的,假如不用Tablayout也无非就是写个布局,切换viewpager的时候对应的状态改变。但这里我就非要用Tablayout,通过这个例子来说明我们要讲的问题。...没准切换的时候,产品经理让icon还要带点动画效果,所以这里我们随便来了个属性动画,点击切换的时候触发: ?...这个切换或者点击时候的事件就要我们自己实现了,所以我们要实现addOnTabSelectedListener这个接口,并在onTabSelectedonTabUnselected里做出相应的改变

    3K30

    TabLayout+ViewPager实现切页的示例代码

    安卓使用TabLayout+ViewPager+Fragment 实现页面切换,可实现左右滑动切换视图界面点击切换 可自定义菜单栏是顶部还是底部 一、实现效果: ?...'com.android.support:design:23.3.0' 主布局文件编写: 顶部或者底部显示,只要更改ViewPagerTabLayout排列顺序即可 <?...(viewPager); tabLayout.getTabAt(1).select();//设置第一个为选中 } } 2.3 字符图片菜单栏实现 图片加汉字菜单栏,菜单栏每项都是一个视图可以自定义设计...菜单栏每项的布局文件设计: 一个图片显示一个文字显示,定义为垂直布局,其中android:layout_gravity=”center”是把控件居中,这里不写,菜单栏显示时可能会出现错位 <?...= (TabLayout) findViewById(R.id.tabs2); viewPager = (ViewPager) findViewById(R.id.viewpager); //添加tablayout

    1.7K40

    Android开发笔记(一百七十二)第二代翻页视图ViewPager2

    正如RecyclerView横空出世取代ListViewGridView那样,Android也推出了二代翻页视图ViewPager2,打算替换原来的翻页视图ViewPager。...其中ViewPager2.ORIENTATION_HORIZONTAL表示水平方向ViewPager2.ORIENTATION_VERTICAL表示垂直方向。...现在有了ViewPager2,搭配TabLayout便轻松多了,只要一行代码即可绑定ViewPager2与TabLayout。下面是将二者联结起来的操作步骤。...1、创建测试页面,并往页面的XML文件先后加入TabLayout标签ViewPager2标签,具体内容如下所示: <LinearLayout xmlns:android="http://schemas.android.com...<em>和</em><em>ViewPager</em>2的视图对象,再利用TabLayoutMediator把标签布局跟翻页视图连为一体,关键代码示例如下:     // 从布局文件中获取名叫tab_title的标签布局     <em>TabLayout</em>

    2.3K30

    Material Design整理(八)——TabLayout

    今天我们一起使用TabLayout+ViewPager来实现主界面效果(如上图),也一起了解一下TabLayout的使用。...当然了,不仅可以不居中直接添加TabItem子标签,这样可变性不好,我们可以代码中动态添加,节后会介绍到!...因为TabLayout一般会结合ViewPager使用,而标签内容,标签数量也可以随着ViewPager改变。 下文会提到TabItem结合ViewPager动态添加。...);//添加到tabLayout中 } 结合第三步,创建Tab对象,对其设置文字图片 ---- 6、修改TabLayout的样式 Tablayout支持定制化修改,提供了不少自定义属性供开发者进行设置...---- 6、TabLayout结合ViewPager 关键的来了! ·a 创建布局 <?xml version="1.0" encoding="utf-8"?

    1.4K10

    Tablayout简单使用方法总结

    一、TabLayout普通用法 项目中使用viewpager的时候大多数都是TabPagerIndicator结合使用,TabPagerIndicator是第三方的,使用起来比较繁琐; 2015谷歌大会官方发布了...设置标题 第三步:将TablayoutViewPager关联到一起 //第一步:初始化ViewPager并设置adapter viewPager = (ViewPager) findViewById...但是我写这个demo的时候碰到一个坑: 标题死活显示不出来,浪费了很长时间,最后Tablayout关联Viewpager之后添加从新设置下标题即可: //关联ViewPager之后添加如下代码...” 限制标签宽度 (更改更改标签对齐方式需第一步(Tablayout普通用法)的基础上更改使用) ?...tablayout添加如下代码: LinearLayout linearLayout = (LinearLayout) tabLayout.getChildAt(0); linearLayout.setShowDividers

    1.5K20

    Android开发之漫漫长途 Fragment番外篇——TabLayout+ViewPager+Fragment

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想记录,我会尽量按照先易难的顺序进行编写该系列。...TabLayout的动态使用 布局文件中我们可以很方便定义顶部/底部 导航的布局。...ViewPager经常Fragment一起使用。...中使用的remove()不同,此时fragment的状态依然保持着,使用attach()时会再次调用onCreateView()来重绘视图,注意使用detach()fragment.isAdded(...本篇总结 我们本篇博客中比较详细的探讨了TabLayout+ViewPager+Fragment的使用,我们许多主流App中都能看到这种顶部、底部导航的效果,并且在此基础上我们探讨了TabLayout

    1.7K10

    学习使用Material Design控件(四)Android实现标题栏自动缩放、放大效果

    可以让包含在其中的控件响应被标记了ScrollingViewBehavior的View的滚动事件 CollapsingToolbarLayout 可以控制包含在CollapsingToolbarLayout其中的控件,响应...collapse时是移除屏幕固定在最上面 TabLayout 结合ViewPager,实现多个TAB的切换的功能 NestedScrollView 与ScrollView基本相同,不过包含在NestedScrollView...match_parent” / </LinearLayout </android.support.design.widget.CoordinatorLayout CollapsingToolbarLayoutTabLayout...mViewPager = (ViewPager) findViewById(R.id.viewpager); setupViewPager(mViewPager); //给TabLayout增加...Tab, 并关联ViewPager TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); tabLayout.addTab

    1.2K31
    领券