我今天在相对布局中遇到了一个奇怪的行为,无法理解为什么会发生这种情况:
1)这是布局,第一个内部编辑文本中的layout_alignParentBottom为true(注意黄色视图不应该扩展所有高度):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/chat_layout"
tools:context=".MainActivity"
android:background="#FF0000">
<RelativeLayout
android:id="@+id/bottomlayout"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF000">
<EditText
android:layout_alignParentBottom="true"
android:id="@+id/chat_edit_text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="edit text">
</EditText>
<EditText
android:id="@+id/chat_edit_text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:layout_above="@id/chat_edit_text2"
android:text="text above">
</EditText>
</RelativeLayout>
</RelativeLayout>
结果如下:
现在,如果我们删除layout_alignParentBottom =&#34; true&#34;在内部编辑文本中,布局是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/chat_layout"
tools:context=".MainActivity"
android:background="#FF0000">
<RelativeLayout
android:id="@+id/bottomlayout"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFF000">
<EditText
android:id="@+id/chat_edit_text2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="edit text">
</EditText>
<EditText
android:id="@+id/chat_edit_text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:layout_above="@id/chat_edit_text2"
android:text="text above">
</EditText>
</RelativeLayout>
</RelativeLayout>
结果:
我的期待:
1)在第一种情况下,我希望两个编辑框一个堆叠在另一个上(这在结果中是正确的)但内部相对布局不应该变成全高。它应该只占用两个编辑框所占用的空间,因为相对布局有一个wrap_content
2)在第二种情况下,我希望两个编辑框都显示为堆叠而不是。但内部相对布局所采用的大小是正确的(考虑到编辑框没有正确堆叠在一起)
我使用上一个android studio稳定版和sdk 23。
这里发生了什么?