我想创建一个水平方向的线性布局
但是我希望它将其子项与其右侧对齐,而不是像往常一样对齐
我该怎么做?
我知道如何使用relativeLayout执行此操作,但我想练习linearLayout
答案 0 :(得分:27)
您可以使用4.2(jelly bean)中引入的android:layoutDirection属性。
以下链接将有所帮助。
http://developer.android.com/reference/android/view/View.html#attr_android:layoutDirection
http://android-developers.blogspot.co.uk/2013/03/native-rtl-support-in-android-42.html
答案 1 :(得分:9)
如果您使用的是Android工作室,则可以执行此操作:
1-右键单击项目主文件夹
2-重构
3-添加对RTL的支持
答案 2 :(得分:5)
您可以使用此代码段来反转布局视图。
LinearLayout ll = // inflate
ArrayList<View> views = new ArrayList<View>();
for(int x = 0; x < ll.getChildCount(); x++) {
views.add(ll.getChildAt(x));
}
ll.removeAllViews();
for(int x = views.size() - 1; x >= 0; x--) {
ll.addView(views.get(x));
}
OR 要在您的应用程序中开始支持RTL布局,请将android:supportsRtl属性设置为清单文件中的元素并将其设置为“true”。启用此功能后,系统将启用各种RTL API以使用RTL布局显示您的应用程序。例如,操作栏将在右侧显示图标和标题,在左侧显示操作按钮,并且您使用框架提供的View类创建的任何布局也将被反转。 Look at this android doc
答案 3 :(得分:2)
您可以将父视图元素的重力设置为右侧
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" <!-- make sure this is not wrap_content !-->
android:layout_height="match_parent"
android:orientation="horizontal"
android:gravity="right" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="A"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="B"/>
</LinearLayout