我在线性布局中有两个相对布局。我希望第一个相对布局左对齐,第二个相对布局右对齐。我在第二个相对布局中设置了以下行,但它不起作用。
android:layout_alignParentRight="true"
我的完整xml文件就在这里。
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="100">
<RelativeLayout
android:id="@+id/left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="45"
android:background="@drawable/listview">
<ImageView
android:id="@+id/leftPanelImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/sports"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="left panel"
android:layout_marginTop="5dp"
android:layout_below="@id/leftPanelImage"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="45"
android:background="@drawable/listview"
android:layout_alignParentRight="true"
>
<ImageView
android:id="@+id/rightPanelImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:src="@drawable/sports"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="right panel"
android:layout_marginTop="5dp"
android:layout_below="@id/rightPanelImage"/>
</RelativeLayout>
</LinearLayout>
</ScrollView>
我当前的代码给出了这样的输出。第一次布局后开始第二次布局。我希望它从父母的右边开始。
所以我的问题是如何设置第二个相对布局右对齐。
谢谢。
答案 0 :(得分:2)
android:layout_alignParentRight适用于相对布局中的子项。由于您的相对布局是线性布局的子项,请尝试使用
android:layout_gravity="left"
和
android:layout_gravity="right"
答案 1 :(得分:1)
您的布局似乎非常矫枉过正,使用LinearLayout
权重和RelativeLayout
这样的简单布局并不是必需的。这两种方法都需要更慢的双重测量。我建议总是使用尽可能少的元素 - 为你的布局尝试像
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
...
android:weightSum="100">
<TextView
android:layout_width="0dp"
android:layout_weight="45"
android:layout_height="wrap_content"
android:drawableTop="@drawable/sports"
android:drawablePadding="5dp"
android:text="left panel"/>
<View
android:layout_width="0dp"
android:layout_weight="10"
android:layout_height="match_parent"/>
<TextView
android:layout_width="0dp"
android:layout_weight="45"
android:layout_height="wrap_content"
android:drawableTop="@drawable/listview"
android:drawablePadding="5dp"
android:text="right panel"/>
</LinearLayout>
答案 2 :(得分:0)
android:layout_alignParentRight
和android:layout_alignParentLeft
用于在相对布局内右对齐或左对齐。当然,它不适用于LinearLayout作为父级。您可以将父布局更改为RelativeLayout。
答案 3 :(得分:0)
android:layout_alignParentRight 属性适用于相对布局的子项。您正在使用线性布局的子项。
您可以将其设置为RelativeLayout的子项或在父视图上使用android:gravity =&#34; right&#34;。
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="45"
android:background="@drawable/listview">
<ImageView
android:id="@+id/rightPanelImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="5dp"
android:src="@drawable/sports"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="right panel"
android:layout_marginTop="5dp"
android:layout_below="@id/rightPanelImage"/>
</RelativeLayout>