如何在android相对布局中根据视图的屏幕宽度设置可伸缩宽度

时间:2014-07-29 23:14:14

标签: android android-layout android-relativelayout

在我的Android应用的活动布局中,我需要在其右侧对齐一行文字,如下所示:

enter image description here

到目前为止,这是我的XML:

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

            <View
                android:id="@+id/line"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_centerVertical="true"
                android:background="@android:color/darker_gray"/>


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text=" Text "
                android:layout_alignRight="@id/line"/>


        </RelativeLayout>

基本上问题是线条的宽度会根据屏幕的宽度和文字的宽度而改变。它应该是屏幕的宽度减去文本的宽度。

在我的XML文件中,线条的宽度等于屏幕的宽度,文本覆盖右侧对齐的线条。这不是我想要的。 一个想法是使我的文本背景等同于活动的背景。但是,我不确定这是不是最好的主意。

我想知道在Android设计中是否还有其他方法可以解决此类问题。

2 个答案:

答案 0 :(得分:1)

您可以创建layout_weight并将视图和textView包装在linearlayout内以启用权重属性

<强>样品:

<?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" >

    <View
        android:layout_width="0dp"
        android:layout_weight="3"
        android:layout_height="3dp"
        android:layout_gravity="center_vertical"
        android:background="@android:color/darker_gray" />

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

</LinearLayout>

答案 1 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text=" Text " />

<View
    android:id="@+id/line"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/textView1"
    android:background="@android:color/darker_gray" />