我的观点如下:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RecyclerView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
/>
</LinearLayout>
它会向TextView
提供50dp,其余区域为RecyclerView
。
但是如果RecyclerView
中的项目小于1或2,那么它应缩小到它的子视图的高度,其他方面的行为就像布局指定的那样。任何人都可以帮忙吗?
答案 0 :(得分:1)
我认为最好的选择是动态更改根视图的LinearLayout.LayoutParams
。如果RecyclerView
的孩子数量较少,请将LinearLayout
参数设置为:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);
layout.setParams(params);
否则,保持原样。
很容易检测到RecyclerView
是否应该被包裹。获取LinearLayout高度:
int height = layout.getTop() - layout.getBottom()
如果此高度低于预期的最大高度(屏幕高度或其他预定义值)。
答案 1 :(得分:0)
一种简单的方法是使用RelativeLayout:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_below="@+id/recyclerView" />
</RelativeLayout>