我有这样的布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bgr">
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true"
>
<TextView android:layout_width="60dp" android:layout_height="wrap_content"
android:id="@+id/label"
style="@style/ConnectionPoint.Label"
android:text="Title"
/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/code"
style="@style/ConnectionPoint.Code"
android:text="CODE"
/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_toRightOf="@id/label"
android:layout_toLeftOf="@id/code"
style="@style/ConnectionPoint.Name"
android:text="Some text"
/>
</RelativeLayout>
</RelativeLayout>
风格:
<style name="ConnectionPoint.Text" parent="android:TextAppearance">
<item name="android:layout_alignParentBottom">true</item>
</style>
<style name="ConnectionPoint.Label" parent="ConnectionPoint.Text">
<item name="android:textColor">@color/from_to</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:textSize">16dp</item>
</style>
<style name="ConnectionPoint.Name" parent="ConnectionPoint.Text">
<item name="android:textSize">26dp</item>
<item name="android:textStyle">bold</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item>
</style>
<style name="ConnectionPoint.Code" parent="ConnectionPoint.Text">
<item name="android:textColor">@color/iata</item>
<item name="android:textSize">18dp</item>
<item name="android:singleLine">true</item>
<item name="android:layout_alignParentRight">true</item>
<item name="android:layout_marginRight">5dp</item>
<item name="android:layout_marginLeft">5dp</item>
</style>
但是在结果中TextViews没有正确对齐:
我希望它们在底部对齐,并且无法理解为什么RelativeLayout不能这样做。我该怎么做才能使RelativeLayout对齐TextViews?
答案 0 :(得分:6)
选择textview并转到属性
select Center Vertical for each textview
或
put android:layout_centerVertical="true" in xml
答案 1 :(得分:3)
试试这段代码:
<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" >
<
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true" >
<TextView
android:id="@+id/label"
style="@style/ConnectionPoint.Label"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:text="Title" />
<TextView
android:id="@+id/code"
style="@style/ConnectionPoint.Code"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="CODE" />
<TextView
android:id="@+id/name"
style="@style/ConnectionPoint.Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Some text" />
</RelativeLayout>
</RelativeLayout>
答案 2 :(得分:0)
不幸的是,唯一可行的解决方案是不使用LinearLayout而不是嵌套的RelativeLayout
答案 3 :(得分:0)
我知道这个问题已经有两年了,但我想如果有其他人遇到这个问题,我会得到更好的答案。它解决了我试图在嵌套的相对布局中底部对齐文本视图的问题。
假设OP的代码:
<RelativeLayout
android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
<TextView
android:layout_width="60dp" android:layout_height="wrap_content"
android:id="@+id/label"
style="@style/ConnectionPoint.Label"
android:text="Title"/>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/code"
style="@style/ConnectionPoint.Code"
android:text="CODE"/>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_toRightOf="@id/label"
android:layout_toLeftOf="@id/code"
style="@style/ConnectionPoint.Name"
android:text="Some text"/>
以下内容应该可以通过底部对齐这些元素:
<RelativeLayout
android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true">
<TextView
android:layout_width="60dp" android:layout_height="wrap_content"
android:id="@+id/label"
android:text="Title"/>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/code"
android:layout_alignBottom="@+id/label"
android:text="CODE"/>
<TextView
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/name"
android:layout_toRightOf="@id/label"
android:layout_toLeftOf="@id/code"
android:layout_alignBottom="@+id/label"
android:text="Some text"/>
</RelativeLayout>
此处唯一的变化是添加以下行:
android:layout_alignBottom="@+id/{your-id-here}"
您可能需要根据您的布局调整一些 - 在上面的示例中,带有id = label的TextView本质上是根,其他元素从它的底部得到。这就是id = label没有layout_alignBottom属性的原因。