布局文件代码如下:
layout_above没有起作用,listview把textview覆盖了
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/listView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/listView2"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_margin="20dp"
android:text="TextView" />
</RelativeLayout>
但是在listview中添加属性android:layout_below="@+id/textView1"
就没有问题
wrap_content
은ListView
에 효과적이지 않고 여전히 화면 전체 높이를 채우므로ListView
를 먼저 쓰면 화면에 공백이 생기지 않고 자연스럽게 보이지 않게 됩니다. (그리고 적용 범위는 아닙니다). 또한, 엄격한 상대ID 작성 방법은TextView
android:layout_below="@id/textView1"
이어야 합니다.다음을 수행할 수 있습니다.
으아아아뷰 트리는 외부에서 내부, 위에서 아래로 순서대로 뷰를 그립니다. 전자의 측정 및 레이아웃 방법이 후자에 영향을 주기 때문에 종속성을 최대한 제한하기 위해 이전 뷰에 배치해야 합니다.