ScrollView内的RecyclerView

时间:2015-09-01 19:04:55

标签: android

我一直使用// App delegate - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window { return UIInterfaceOrientationMaskAllButUpsideDown; } // View controller -(UIInterfaceOrientationMask)supportedInterfaceOrientations { return UIInterfaceOrientationMaskLandscape; } ,并且在ListView范围内,我使用ScrollView方法根据列表中的项目数设置高度。

现在我正在使用setListViewHeightBasedOnItems,但这种设置高度的方法不再起作用,我应该如何在RecyclerView内使用RecyclerView

1 个答案:

答案 0 :(得分:1)

关于RecyclerView的一个好处是,当ListViewRecyclerView不适合在特定情况下使用时,它会更加清晰。

RecyclerView旨在回收不在屏幕上的视图,以提高滚动效率。如果您希望一组视图的容器的高度等于其所有子项的高度,则必须首先布置其子项的每个子项。每个项目的一个视图必须膨胀,从而违背了允许视图首先被回收的目的。

相反,您可能希望为此目的使用简单的LinearLayout。您仍然可以使用Adapter填充视图,您将获得开箱即用的行为。如果您想使用适配器填充LinearLayout,您的代码可能如下所示:

LinearLayout container = (LinearLayout) findViewById(R.id.list_container);
Adapter listAdapter = createListAdapter();

final int childCount = listAdapter.getCount();
for (int i = 0; i < childCount; i++) {
    View child = listAdapter.getView(i, null, container);
    container.addView(child);
}