具有垂直和水平滚动的 Recyclerview

Posted

技术标签:

【中文标题】具有垂直和水平滚动的 Recyclerview【英文标题】:Recyclerview with both vertical and horizontal scrolling 【发布时间】:2019-04-16 01:18:36 【问题描述】:

目前我正在为电视制作我的应用程序布局,我面临的问题是我有一个 recyclerview 来显示用户最近的活动,在手机中我垂直显示了最近的活动,但在 android 电视中我们有更多的宽度然后高度,所以我想水平显示最近的活动我尝试了很多解决方案,比如

<android.support.v7.widget.RecyclerView
        android:layout_
        android:layout_
        android:orientation="horizontal"
        tools:orientation="horizontal" tools:layoutManager="android.support.v7.widget.LinearLayoutManager" />

但它仍然垂直显示我不知道为什么.. 我也尝试在 ScrollView 中添加 recyclerview 但仍然无法正常工作。也许我在 java 中声明了 LinearLayoutManager 这就是它以垂直格式显示的原因..

我正在夸大 reclerview 的片段的代码

View view=inflater.inflate(R.layout.recent_activity_tab1_recycler_view, container, false);
        RecyclerView recent_activity_list = (RecyclerView) view.findViewById(R.id.recent_activity_list);
        recent_activity_list.setLayoutManager(new LinearLayoutManager(getActivity()));

【问题讨论】:

【参考方案1】:

不要在那里给出方向。而不是使用布局管理器来设置 recyclerView 的方向。

例如。

LinearLayoutManager layoutManager
    = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);

这里第一个参数是上下文,第二个是方向,第三个是reverseLayout。

你可以在那里改变方向。

【讨论】:

但是如果我在这里设置水平方向,那么我的手机会在水平方向显示 recyclerview,我希望它对手机响应垂直,对电视响应水平【参考方案2】:

尝试替换这一行

recent_activity_list.setLayoutManager(new LinearLayoutManager(getActivity()));

用这条线

recent_activity_list.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false));

【讨论】:

也试过这个,但它也为手机设置了水平方向,我希望手机是垂直的,电视是水平的 因此您必须先检查设备是电视还是电话,然后使用其中一种布局[水平-垂直] 您可能会发现此答案有助于检查***.com/questions/27138838/…

以上是关于具有垂直和水平滚动的 Recyclerview的主要内容,如果未能解决你的问题,请参考以下文章

同时具有水平和垂直滚动条的 Android GridView

表格布局可以同时具有水平和垂直滚动视图吗

具有垂直和水平滚动的 Ant Design Table

UIScrollview在垂直和水平ios中滚动

如何启用垂直滚动的滚动条并禁用水平滚动?

如何将我的 UICollectionView Flowlayout 更改为具有水平滚动的垂直列表