Android - 将视图与布局的末端对齐

时间:2014-08-27 08:23:09

标签: android

很抱歉,如果我的问题听起来很简单,但我正在为我的列表项目制作一个简单的布局,我的意图是在布局的每一端与textviews对齐。我的尝试如下,但texviews紧挨着彼此。我出错的任何想法?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:orientation="horizontal">

    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ll_finc_calctr_result_label"> 

        <TextView
            android:id="@+id/tv_finc_calctr_result_label"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_alignRight="@+id/ll_finc_calctr_result_label"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@+id/ll_finc_calctr_result_label">

           <TextView
               android:id="@+id/tv_finc_calctr_result"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="center"/>

    </LinearLayout>

</RelativeLayout>

3 个答案:

答案 0 :(得分:0)

试试这个..

<?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="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp" >

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

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

</LinearLayout>

答案 1 :(得分:0)

首先,您需要从第二个线性布局中删除alignRighttoRightOf的两个属性:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:orientation="horizontal">

    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/ll_finc_calctr_result_label"> 

        <TextView
            android:id="@+id/tv_finc_calctr_result_label"
            android:layout_width="wrap_content"
            android:text="ss"
            android:layout_height="wrap_content"/>

    </LinearLayout>

    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:layout_alignParentRight="true" >

           <TextView
               android:id="@+id/tv_finc_calctr_result"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:text="sse"
               android:layout_gravity="center"/>

    </LinearLayout>

</RelativeLayout>

这将导致右侧的第二个文本视图。

我建议您不要采用两种线性布局,因为它们只包含一个文本视图:

类似的东西:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="10dp" >

    <TextView
        android:id="@+id/tv_finc_calctr_result_label"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="ss" />

    <TextView
        android:id="@+id/tv_finc_calctr_result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="sse" />

</RelativeLayout>

输出:

enter image description here

答案 2 :(得分:0)

Hariharan提供的解决方案非常出色。如果您需要textViews的宽度实际上是wrap_content(例如,如果它们具有背景样式等),则另一个选项可能更有用。您可以使用空格实现更准确的行为:

<?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="10dp" >

<TextView
    android:id="@+id/tv_finc_calctr_result_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

<Space
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

<TextView
    android:id="@+id/tv_finc_calctr_result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center" />

</LinearLayout>