如何在水平线性布局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的引力改为“正确”
尝试:
- 将TextView的宽度更改为
fill_parent
-
将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。 假设TextView
有layout_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 right
alignment。
我在下面的例子中使用了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>