RelativeLayout wrap_content宽度,循环依赖

时间:2013-02-11 19:36:04

标签: android width relativelayout android-relativelayout

想要为Android版Google Maps v2 API设计自定义标记气球。我已经覆盖了getInfoContents但我现在的布局采用ym自定义设计的屏幕的整个宽度。我希望它以最大宽度环绕文本。

我在网上阅读后发现了我的问题,可能是我在RelativeLayout中有循环依赖,这是不允许的。但是,我如何将文本字段“位置”移动到布局的右侧,与标题一致但在右侧?

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

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="end"
        android:maxLines="1"
        android:paddingBottom="2sp"
        android:paddingLeft="5sp"
        android:paddingTop="1sp"
        android:textColor="@color/list_item_title_color"
        android:textSize="15sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"sa
        android:layout_below="@id/title"
        android:ellipsize="end"
        android:maxLines="3"
        android:paddingBottom="3sp"
        android:paddingLeft="5sp"
        android:paddingRight="5sp"
        android:textColor="@color/list_item_text_color"
        android:textSize="13sp" />

    <TextView
        android:id="@+id/place"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="right"
        android:paddingRight="5sp"
        android:paddingTop="1sp"
        android:textColor="@color/list_item_date_color"
        android:textSize="13sp" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/icons"
        android:layout_width="fill_parent"
        android:layout_height="32dp"
        android:layout_below="@id/place"
        android:gravity="right"
        android:orientation="vertical"
        android:paddingBottom="2sp"
        android:paddingLeft="5sp"
        android:paddingRight="5sp" >
    </LinearLayout>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

你不能只添加:

android:layout_toRightOf="@id/title"

到你的地方textview?

编辑:

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

<RelativeLayout
android:id="@+id/leftLayout"
android:layout_alignParentLeft="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ellipsize="end"
    android:maxLines="1"
    android:paddingBottom="2sp"
    android:paddingLeft="5sp"
    android:paddingTop="1sp"
    android:textColor="@color/list_item_title_color"
    android:textSize="15sp"
    android:textStyle="bold" />

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"sa
    android:layout_below="@id/title"
    android:ellipsize="end"
    android:maxLines="3"
    android:paddingBottom="3sp"
    android:paddingLeft="5sp"
    android:paddingRight="5sp"
    android:textColor="@color/list_item_text_color"
    android:textSize="13sp" />

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/icons"
    android:layout_width="fill_parent"
    android:layout_height="32dp"
    android:layout_below="@id/place"
    android:gravity="right"
    android:orientation="vertical"
    android:paddingBottom="2sp"
    android:paddingLeft="5sp"
    android:paddingRight="5sp" >
</LinearLayout>

</RelativeLayout>

    <TextView
        android:id="@+id/place"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_toRightOf="@id/leftLayout"
        android:gravity="right"
        android:paddingRight="5sp"
        android:paddingTop="1sp"
        android:textColor="@color/list_item_date_color"
        android:textSize="13sp" />
</RelativeLayout>

在这里,试试这个,但它没有经过测试。

答案 1 :(得分:0)

除非我误解,否则你应该能够包装&#34;标题,地点和文字&#34;在linearlayout

<LinearLayout
android:id="@+id/textLL
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
//textViews
</LinearLayout>

现在使用

android:layout_toRightOf="@+id/textLL"

在你的&#34;图标&#34;布局。或者这不是你想要的?