为什么imageview会在布局上消失?

时间:2013-07-29 02:40:03

标签: android layout

图像视图位于布局的右侧。如果messagedetail_row_text的内容太长,则不显示。如果messagedetail_row_text的内容不太长,则会显示imageview。

<?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:layout_marginTop="15dp"
    android:gravity="right"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/dfdwasdfds"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/outgoing"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="22dip"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/messagedetail_row_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="1dp"
                android:textColor="#000000"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/messagedetail_row_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dip"
                android:paddingTop="1dp"
                android:textColor="#000000"
                android:textSize="16sp" />
        </LinearLayout>

        <TextView
            android:id="@+id/messagedetail_row_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="2dp"
            android:textColor="#000000"
            android:textSize="20sp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_toRightOf="@id/dfdwasdfds"
        >

        <ImageView
            android:id="@+id/messagegedetail_rov_icon2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:gravity="right"
            android:src="@drawable/retouxiang" />

    </LinearLayout>

</RelativeLayout>

3 个答案:

答案 0 :(得分:2)

目前尚不清楚您正在寻找什么。这是我的理解:

<?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:layout_marginTop="15dp"
    android:gravity="right"
    android:orientation="horizontal" >

    <LinearLayout
        android:id="@+id/xyz"
        android:layout_alignParentRight="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        >

        <ImageView
            android:id="@+id/messagegedetail_rov_icon2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top"
            android:gravity="right"
            android:src="@drawable/retouxiang" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/dfdwasdfds"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/xyz"
        android:background="@drawable/outgoing"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="22dip"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/messagedetail_row_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="1dp"
                android:textColor="#000000"
                android:text="messagedetail_row_name"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/messagedetail_row_date"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dip"
                android:paddingTop="1dp"
                android:text="messagedetail_row_date"
                android:textColor="#000000"
                android:textSize="16sp" />
        </LinearLayout>

        <TextView
            android:id="@+id/messagedetail_row_text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:paddingLeft="2dp"
            android:text="messagedetail_row_text and this is a long text"
            android:textColor="#000000"
            android:textSize="20sp" />
    </LinearLayout>

</RelativeLayout>

答案 1 :(得分:1)

尝试更改

  <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:layout_toRightOf="@id/dfdwasdfds"
            >


to
     <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" 
        android:layout_below="@id/dfdwasdfds"
        >

答案 2 :(得分:0)

我认为这种情况正在发生,因为你已经给出了textView宽度fill_parent并且它占用的空间是它的长度,然后它的父宽度是wrap_content,所以它上升到它的子占用空间(即TextView),所以你没有空间来显示ImageView。

您可以尝试使用LinearLayout作为根布局而不是relativeLayout ..并通过赋予它们权重来管理您的视图。