[英]Android - Set Layout_Gravity programmatically for LinearLayout
[英]Why does layout_gravity set to left/right have no effect in horizontal LinearLayout?
我试图有两个TextView
的一个在父级的左侧,另一个在右侧。
我期望layout_gravity
足以解决问题。
但这是行不通的。 示例代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="LEFT"
android:textSize="14sp"
android:layout_gravity="left"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="RIGHT"
android:textSize="14sp"
android:layout_gravity="right"
/>
</LinearLayout>
</LinearLayout>
我究竟做错了什么?
尝试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="300dp"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="LEFT"
android:layout_weight=".5"
android:layout_gravity="start"
android:gravity="start"
android:textSize="14sp" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="RIGHT"
android:layout_weight=".5"
android:layout_gravity="end"
android:gravity="end"
android:textSize="14sp"/>
</LinearLayout>
LinearLayout
不会将layout_gravity
用于其布局的方向。 您可以在水平LinearLayout
使用layout_gravity
来控制垂直放置的方式:顶部,中心或底部。
您可以将LinearLayout
更改为垂直,然后您的左/右重力将起作用,但是第二个TextView
将比第一个TextView
。 我认为这不是您想要的。
在我看来,您对LinearLayout
提供的布局逻辑不感兴趣(这是将其子项一个接一个地放置)。 您只希望一个左对齐,一个右对齐。 如果将TextView
放在FrameLayout
,则可以使用重力来实现这种效果。
尝试这种方式:编辑Eenvincible的答案...
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="1"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="LEFT"
android:textSize="14sp"
android:layout_gravity="left"
/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="RIGHT"
android:textSize="14sp"
android:layout_gravity="right"
/>
</LinearLayout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.