如何在 Google Play 等标签页中启用水平滚动?
Posted
技术标签:
【中文标题】如何在 Google Play 等标签页中启用水平滚动?【英文标题】:How to enable horizontal scroll in tab like Google Play? 【发布时间】:2015-09-20 13:13:43 【问题描述】:我在参考一个很棒的 demo here 关于材料设计。它有标签,但是当我添加太多标签项时,它会被压扁(见截图)。如何让它水平滚动?
我相信下面是我应该进行更改的布局,但我梳理了文档,似乎无法得到它,请帮助!
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_content"
android:layout_
android:layout_>
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_
android:layout_
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_
android:layout_ />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_
android:layout_
android:layout_gravity="end|bottom"
android:layout_margin="@dimen/fab_margin"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
【问题讨论】:
您是否尝试将您的TabLayout
放入HorizontalScrollingView
?
嘿@N1to 成功了!请留下作为答案,我会接受。我刚刚用<HorizontalScrollView android:layout_width="match_parent" android:layout_height="match_parent">
包裹了TabLayout
。唯一的问题是,当我从屏幕上滑动到一个标签时,它不会专注于该标签。
别这样,TabLayout本身已经是HorizontalScrollview了。您应该在 MODE_SCROLLABLE 中设置 TabLayout(它在文档中)
【参考方案1】:
TabLayout
有一个方法 setTabMode()
,它可以是 MODE_FIXED
(默认)或 MODE_SCROLLABLE
,这是您需要的。
您也可以使用app:tabMode="scrollable"
在 XML 中定义它。
【讨论】:
请参阅此博客以获取演示 ekiras.com/2015/12/… 就我而言,我在左侧使用 TabLayout。可以垂直滚动吗?【参考方案2】:您可以将此app:tabMode="scrollable"
添加到您的android.support.design.widget.TabLayout
【讨论】:
你的答案和接受的答案有什么区别?【参考方案3】:如果你添加了
app:tabMode="scrollable"
如上所述,
显示布局,您无法滚动
然后也许你把它放在 XML 文件的顶部,在它下面添加 matchh_parent
(高度/宽度)到 ViewPager。因为 viewpager 位于选项卡布局上方,您将无法滚动。
将其添加到 XML 的底部,以便另一个视图与选项卡布局重叠。
【讨论】:
【参考方案4】:SlidingTabLayout 和 SlidingTabStrip 类是你要找的 您需要从 google 开发者网站复制这些类,在 xml 中添加滑动选项卡布局,并在 set viewpager 中为 java 中的滑动选项卡布局添加。希望对您有所帮助。
【讨论】:
我正在寻找如何从头开始制作的示例,这不是本机控件吗? 据我所知,它不包含在库中,但是有这个控件的源代码。 developer.android.com/samples/SlidingTabsBasic/index.html您需要将它们复制到您的项目中。以上是关于如何在 Google Play 等标签页中启用水平滚动?的主要内容,如果未能解决你的问题,请参考以下文章
我应该如何在 Google Play 管理中心启用我的 AdMob 真实 ID?
(Unity) 使用 BuildPipeline 构建时启用 App Bundle (Google Play) 选项?