RecyclerView里面的Listview滚动无法正常工作?

时间:2018-05-14 12:45:20

标签: android android-recyclerview

我正在使用RecyclerView,它将ListView作为列表项。 我正在使用LinearLayoutManager for RecyclerView。 ListView有很多水平和垂直滚动的数据。 但在我的情况下,在纵向模式下,它会停止垂直滚动,在横向模式下,它会停止水平滚动。该要求无法改变。是否有任何建议来管理这个问题。我附上了我的部分代码。

列出项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/info_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:elevation="5dp"
android:orientation="vertical"
android:visibility="visible">

<View
    android:id="@+id/line"
    android:layout_width="match_parent"
    android:layout_height="2px"
    android:background="@color/table_item_even" />

<ListView
    android:id="@+id/lst_info"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:divider="@null"
    android:dividerHeight="0dp"
    android:scrollbars="horizontal|vertical"
    android:transcriptMode="alwaysScroll"></ListView>

RecyclerView:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<android.support.v7.widget.RecyclerView
    android:id="@+id/rv_multiprobs_info"
    android:layout_width="match_parent"
    android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

LinearLayoutManager oriantation更改模式:

 if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
            layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
        } else {
            layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
        }

1 个答案:

答案 0 :(得分:1)

我忘了做下面的技巧。一个非常简单的方法覆盖保存了我的程序。我只专注于RecyclerView而不是布局管理器上的错误。

 layoutManager = new LinearLayoutManager(context){
        @Override
        public boolean canScrollVertically() {
            return false;
        }

        @Override
        public boolean canScrollHorizontally() {
            return false; 
        }
    };