在下面的代码中,当我将第一个孩子LinearLayout
的高度设置为match_parent
时,高度会爆炸到屏幕大小。我不知道为什么会这样。父级是RelativeLayout
,因此,当LinearLayout
的高度设置为RelativeLayout
时,第一个孩子match_parent
的高度是否恰好与<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@null">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_toStartOf="@+id/vote_container"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:text="1M"/>
</LinearLayout>
<LinearLayout
android:id="@id/vote_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal">
<ImageButton
android:id="@+id/upvote_button"
android:layout_width="30dp"
android:layout_height="17dp"
android:layout_centerHorizontal="true"
android:background="@null"
android:src="@drawable/ic_keyboard_arrow_up"/>
<TextView
android:id="@+id/number_of_votes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@id/upvote_button"
android:hint="100"/>
<ImageButton
android:id="@+id/downvote_button"
android:layout_width="30dp"
android:layout_height="17dp"
android:layout_centerHorizontal="true"
android:layout_below="@id/number_of_votes"
android:background="@null"
android:src="@drawable/ic_keyboard_arrow_down"/>
</LinearLayout>
</RelativeLayout>
的高度匹配?
for i in listRaw:
答案 0 :(得分:1)
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
你想要的吗?
答案 1 :(得分:1)
这不一定是问题的解决方案,而是更多的解决方法。我只是将第一个LinearLayout
的顶部和底部与第二个LinearLayout
的顶部和底部对齐 - @ id / vote_container。假设第一个LinearLayout
的高度永远不需要比第二个LinearLayout
的高度增大,这应该不是问题。如果是这样,我可以反转他们两个之间的约束关系。
相关代码无效的原因是RelativeLayout
的高度设置为wrap_content
,第一个LinearLayout
的高度设置为{{1}因此,为了计算父级的高度,确定子级的高度,但为了计算第一个子级的高度,确定父级的高度,即创建递归关系,match_parent
不做直观地处理它。
在这种情况下会发生的事情是搜索父母的层次结构,直到找到一个高度不是Android
的父级,并且该父级的值用于第一个wrap_content
的父级。高度。在我的情况下,LinearLayout
父级有另一个父级,而且RelativeLayout
的高度也设置为LinearLayout
,因此唯一的父级值为wrap_content
以外的高度1}}是超级视图 - 放置所有其他视图的视图;而且该视图的高度只是屏幕的大小。
这就是我wrap_content
的高度达到屏幕大小的原因。