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

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

<android.support.v7.widget.RecyclerView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        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()));

【问题讨论】:

    标签: android android-recyclerview


    【解决方案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));
    

    【讨论】:

    • 也试过这个,但它也为手机设置了水平方向,我希望手机是垂直的,电视是水平的
    • 因此您必须先检查设备是电视还是电话,然后使用其中一种布局[水平-垂直] 您可能会发现此答案有助于检查stackoverflow.com/questions/27138838/…
    猜你喜欢
    • 2016-07-24
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多