无法将视图对齐到右侧

时间:2015-03-25 11:19:56

标签: android android-layout

我试图在父布局的左侧和右侧显示一个视图,如下所示:

<LinearLayout     
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="left"
        android:layout_gravity="left" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="right"
        android:layout_gravity="right" />
</LinearLayout>

但结果我看到两个textViews只对齐左边。我不明白为什么。我设法设置verticaly layout_gravity而不是水平的。另外,我可以补充一下:

android:gravity="right"

到父布局,而不是在右侧看到两个视图但是找不到在左侧显示一个视图而在右侧显示一个视图的方法。
请帮忙。

8 个答案:

答案 0 :(得分:1)

试试这个:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="left"
            android:text="left" />

        <TextView
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="right"
            android:text="right" />
    </LinearLayout>

或尝试以下

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="left" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="right" />

</RelativeLayout>

修改 在方法1中,使用重量将整个屏幕分成两部分,并且设置第一项的重力是左,第二项的重力是正确的。 我没有使用android:layout_gravity for TextView。使用android:gravity。更好的练习你可以使用relativeLayout。检查第二个选项

答案 1 :(得分:1)

你也可以试试这个

    <LinearLayout
    android:layout_width="match_parent"
    android:orientation="horizontal"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="left"
        android:text="left" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="right"
        android:text="right" />

</LinearLayout>

答案 2 :(得分:1)

这里的另一个技巧;

View之间放置一个不可见的TextView。并且它将使用android:layout_weight="1"占据整个剩余区域,因此TextView将保留在两端。不需要重力。请尝试以下代码:)

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="left" />

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="right" />
</LinearLayout>

答案 3 :(得分:0)

android:layout_weight="1"设置为TextViews

答案 4 :(得分:0)

改为使用Relativelayout

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:text="left" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="right" />

</RelativeLayout>

答案 5 :(得分:0)

<?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:weightSum="100"
    android:orientation="horizontal">

    <TextView
        android:layout_weight="50"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="left"
       android:gravity="left" />

    <TextView
        android:layout_weight="50"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="right"
        android:gravity="right" />
</LinearLayout>

答案 6 :(得分:0)

试试这个:

<?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:baselineAligned="false"
android:orientation="horizontal" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="left" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="left" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:gravity="right" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="right" />
</LinearLayout>

</LinearLayout>

答案 7 :(得分:0)

LinearLayout最简单的解决方案是使用gravity="right"

修改正确的文本视图
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="right"
    android:gravity="right" />

但我强烈建议使用RelativeLayout作为@Sjd建议。