![](/img/trans.png)
[英]Android - Set Layout_Gravity programmatically for LinearLayout
[英]android:layout_gravity doesn't work as expected
我有一个简单的LinearLayout,一个TextView和一个ImageView。 我希望TextView中的文本与右侧对齐,但结果显示Text已对齐到左侧。 我的布局xml有什么问题吗? 谢谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:background="#E8E3E4">
<LinearLayout android:orientation="horizontal"
android:layout_width="wrap_content" android:layout_height="wrap_content"
>
<TextView android:layout_width="260dp" android:layout_height="wrap_content"
android:text="More Comments" android:textStyle="bold" android:background="#ff0000"
android:textColor="#121222" android:layout_gravity="right" />
<ImageView android:layout_width="50dp"
android:layout_height="wrap_content" android:src="@drawable/arrow_right"
android:layout_gravity="center" android:scaleType="centerInside" />
</LinearLayout>
</LinearLayout>
谢谢,迈克尔。 但是你提到的解决方法也不起作用。
我试图使用RelativeLayout,但它仍然给我结果如下:更多评论(图标)
我期待的更多评论(图标)
RelativeLayout xml在下面。 它有什么问题吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:id="@+id/label" android:layout_width="260dp"
android:layout_height="wrap_content" android:text="More Comments"
android:textStyle="bold" android:background="#ff0000"
android:textColor="#121222" android:layout_gravity="right" />
<ImageView android:layout_width="50dp" android:layout_height="wrap_content"
android:src="@drawable/arrow_right" android:layout_gravity="center"
android:scaleType="centerInside" android:layout_toRightOf="@id/label" />
</RelativeLayout>
根据Michael的评论解决方法,我在下面有XML。 我期望输出为:
RightLeft
但实际输出是:
Right Left
所以解决方法对我不起作用。 有什么想法吗?
<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_weight="1.0"
android:text="RIGHT"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="LEFT"/>
</LinearLayout>
具有水平方向的LinearLayouts不支持右/左重力。 你可以在这里找到一个解决方法。
我弄清楚我的xml有什么问题。 我应该使用gravity而不是layout_gravity来右对齐TextView中的文本。 以下XML按预期工作。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:id="@+id/label" android:layout_width="260dp"
android:layout_height="wrap_content" android:text="More Comments"
android:textStyle="bold" android:background="#ff0000"
android:textColor="#121222" android:gravity="right" />
<ImageView android:layout_width="50dp" android:layout_height="wrap_content"
android:src="@drawable/arrow_right" android:layout_gravity="center"
android:scaleType="centerInside" android:layout_toRightOf="@id/label" />
</RelativeLayout>
我只使用android完成了一些项目,但是android:layout_gravity指定了父视图中视图的对齐方式,android:gravity指定视图中包含的视图的对齐方式。 确保您指定了正确的一个。 文档没有区分这两者。
如果您发布了一些示例XML,那么帮助您会更容易。
编辑:
我发现你现在已经发布了XML。 它看起来像你有正确的属性集,但如果你正在将文本对齐,为什么你会把它放在线性布局中? 我建议改它从左到右。
这是我为我的项目编写的一些代码。 它完成了你正在寻找的东西。 我只是更改控件类型等等,你应该关闭并运行。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="50dip"
android:background="#ffdddddd">
<TextView android:layout_width="260dp"
android:layout_height="wrap_content"
android:text="More Comments"
android:textStyle="bold"
android:background="#ff0000"
android:textColor="#121222"
android:layout_centerHorizontal="true"
android:layout_alignParentTop="true" />
<ImageView android:layout_width="50dp"
android:layout_height="wrap_content"
android:src="@drawable/arrow_right"
android:scaleType="centerInside"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true" />
</RelativeLayout>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.