如何在水平线性布局android中alignment小部件?

这是我正在使用的代码,它不工作:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal"> <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="right"> </TextView> </LinearLayout> 

尝试在水平LinearLayout中添加空视图,然后添加要查看的元素,例如:

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" > <View android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> 

如果你不想让所有东西都在右边,不要把LinearLayout的引力改为“正确”

尝试:

  1. 将TextView的宽度更改为fill_parent
  2. 将TextView的引力更改为right

     <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right"> </TextView> 

作为alcsan答案的补充,您可以使用Space API 14(Android 4.0 ICE_CREAM_SANDWICH), 这里是文档 。

空间是一个轻量级的View子类,可用于在通用布局中的组件之间创build空隙。

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Space android:layout_width="0dp" android:layout_height="0dp" android:layout_weight="1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="TextView" android:gravity="right" /> </LinearLayout> 

对于支持14级以下API级别的应用程序,自Android支持库r22.1.0以来,有一个android.support.v4.widget.Space

线性布局

 <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/select_car_book_tabbar" android:gravity="right" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:src="@drawable/my_booking_icon" /> </LinearLayout> 

在这里输入图像说明

FrameLayout

 <FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/select_car_book_tabbar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|right" android:src="@drawable/my_booking_icon" /> </FrameLayout> 

RelativeLayout

 <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/select_car_book_tabbar"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:src="@drawable/my_booking_icon" /> </RelativeLayout> 

设置视图的layout_weight="1"将做的伎俩。

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1" /> <RadioButton android:id="@+id/radioButton1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> 

android:gravity="right"到LinearLayout。 假设TextViewlayout_width="wrap_content"

你应该使用RelativeLayout,只需拖动它们,直到它看起来不错:)

  <ImageView android:id="@+id/button_info" android:layout_width="30dp" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_marginRight="10dp" android:contentDescription="@string/pizza" android:src="@drawable/header_info_button" /> </RelativeLayout> 

只需在您的衬板布局中添加android:gravity="right"

尝试将layout_width更改为android:layout_width="match_parent"因为gravity:"right"将layout_width中的文本alignment,如果select了wrap内容,它不会去哪里,但是如果selectmatch parent,则可以转到正确的。

我已经通过最简单的方式完成了:

只需要一个RelativeLayout,并把你的 视图放在里面,你想把它放在右边

  <LinearLayout android:id="@+id/llMain" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#f5f4f4" android:gravity="center_vertical" android:orientation="horizontal" android:paddingBottom="20dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="20dp"> <ImageView android:id="@+id/ivOne" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /> <TextView android:id="@+id/txtOne" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:text="Hiren" android:textAppearance="@android:style/TextAppearance.Medium" android:textColor="@android:color/black" /> <RelativeLayout android:id="@+id/rlRight" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="right"> <ImageView android:id="@+id/ivRight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="5dp" android:src="@drawable/ic_launcher" /> </RelativeLayout> </LinearLayout> 

希望它会帮助你。

layout_width="fill_parent" linear layout ,以及具有相同layout width + gravity as right的小部件将gravity as rightalignment。

我在下面的例子中使用了2个TextView ,在左边的topicQuestions和在右边的topicQuestions

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingLeft="20dp" android:orientation="horizontal"> <TextView android:id="@+id/topicTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18sp" android:textStyle="bold" /> <TextView android:id="@+id/topicQuestions" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textSize="18sp" android:textStyle="bold" /> </LinearLayout> </RelativeLayout> 

产量

在使用TextView的情况下:

 <TextView android:text="TextView" android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:textAlignment="gravity"> </TextView> 

这里是一个例子。 安排的关键如下

 android:layout_width="0dp" android:layout_weight="1" 

完整的代码

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="5dp"> <TextView android:id="@+id/categoryName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="abcd" /> <TextView android:id="@+id/spareName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="efgh" /> </LinearLayout> 

在这里输入图像说明

尝试这个..

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" android:gravity="right" > <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"> </TextView> </LinearLayout>