Android Listview内部RecyclerView滚动条工作不正常?
我正在使用RecyclerView,它将ListView作为列表项。 我正在为RecyclerView使用LinearLayoutManager。ListView有大量的数据可以水平和垂直滚动。 但在我的例子中,在纵向模式下,它停止垂直滚动,在横向模式下,它停止水平滚动。这一要求是不可能改变的。有什么建议来处理这个问题吗。我附加了我的代码的某些部分 清单项目:Android Listview内部RecyclerView滚动条工作不正常?,android,android-recyclerview,Android,Android Recyclerview,我正在使用RecyclerView,它将ListView作为列表项。 我正在为RecyclerView使用LinearLayoutManager。ListView有大量的数据可以水平和垂直滚动。 但在我的例子中,在纵向模式下,它停止垂直滚动,在横向模式下,它停止水平滚动。这一要求是不可能改变的。有什么建议来处理这个问题吗。我附加了我的代码的某些部分 清单项目: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a
<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而不是LayoutManager,这是一个错误
layoutManager = new LinearLayoutManager(context){
@Override
public boolean canScrollVertically() {
return false;
}
@Override
public boolean canScrollHorizontally() {
return false;
}
};
我认为getResources().getConfiguration().orientation可能返回“错误”的方向。您何时调用它?可能尝试使用“Display getOrient=activity.getWindowManager().getDefaultDisplay();”获取显示。然后用显示器的高度和宽度构建if。@GAlexMES我想你不明白这个问题。如果定位的条件正常,你可以考虑一下。
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
} else {
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
}
layoutManager = new LinearLayoutManager(context){
@Override
public boolean canScrollVertically() {
return false;
}
@Override
public boolean canScrollHorizontally() {
return false;
}
};