我正在寻找布局系统的一些见解。是否有人知道Android布局系统中允许 peer View
元素(意味着在同一容器中组合在一起的视图)匹配其高度和宽度属性而不创建插页式容器的方法管理他们的规模?
例如:布局有两个TextView
元素。第一个应该始终将宽度包装到其文本内容,但第二个应该匹配第一个的宽度。 WORKS的解决方案就是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textTwo"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
但是,我必须为两个视图创建一个特殊的容器,以确保它们都匹配第一个文本的宽度;为层次结构添加不必要的复杂性我想知道的是,如果有一个布局属性我可以用来做这样的事情:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textTwo"
android:layout_widthMatchPeer="@id/textOne" <!-- An attribute like this -->
android:layout_height="wrap_content"
android:layout_below="@id/textOne" />
</RelativeLayout>
创建一个硬尺寸作为宽度会破坏让主要元素换行的目的。有没有人知道的技术,或者我错过的属性,才能实现这一目标?可以采用任何标准布局,我只选择RelativeLayout
作为示例。
此外,如果元素不在彼此附近怎么办?
干杯。
答案 0 :(得分:5)
我认为RelativeLayout
类可以做你想做的事:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/textOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/textTwo"
android:layout_alignLeft="@id/textOne"
android:layout_alignRight="@id/textOne"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textOne" />
</RelativeLayout>
答案 1 :(得分:0)
由于视图处于相关布局中,请使用android:layout_below =“id / firsttv”android:layout_alignLeft =“id / firsttv”和android:layout_alightRight =“id / firsttv”