我有两个TextView在一个LinearLayout,我想对齐他们一个向左(或中心)和一个向右在同一行。如何做到这一点?我试着用重力,但他们忽略了。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="TextView" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:text="TextView" />
</LinearLayout>
最简单的方法是将您的LinearLayout
更改为RelativeLayout
。
可以使用android:layout_alignParentRight="true"
和android:layout_alignParentLeft="true"
。或者使用android:layout_centerInParent="true"
看这里为什么重力不起作用
您正在使用gravity
而不是layout_gravity
,这是您想要的。这篇文章应该有助于澄清两者的区别
文档显示可用的属性
android:gravity
用于设置视图内内容的重力。但是,在您的情况下,宽度是wrap_content
,因此内容在文本视图中无处可去。
使用RelativeLayout
, layout_width
作为match_parent
。然后使用android:layout_alignParentLeft="true"
和android:layout_alignParentRight="true"
与textViews。
在第二个textview中使用或不使用android:gravity并尝试。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_weight="1" />
<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:layout_weight="1" />
</LinearLayout>
如果LinearLayout为Vertical,则每行只能放置一个对象。你可以使用RelativeLayout,或者在一行中添加LinearLayout Horizontal,其中包含textviews
。
<LinearLayout vertical>
<LinearLayout horizontal>
<textview 1></>
<textview 2></>
</LinearLayout>
</LinearLayout>
我修复了GridLayout的所有问题…这是最好的事情,因为你不需要将任何东西与任何东西对齐…只要把你想要的放进矩阵(行,列)…这将使您可视化的所有领域,在准确包装内容,你的数据也在景观是完美的!