我正在使用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);
}
答案 0 :(得分:1)
我忘了做下面的技巧。一个非常简单的方法覆盖保存了我的程序。我只专注于RecyclerView而不是布局管理器上的错误。
layoutManager = new LinearLayoutManager(context){
@Override
public boolean canScrollVertically() {
return false;
}
@Override
public boolean canScrollHorizontally() {
return false;
}
};