2013-07-29 81 views
3

imageview位於佈局的右側。如果messagedetail_row_text的內容太長,它不會顯示。如果messagedetail_row_text的內容不是太長,imageview會顯示。爲什麼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> 

回答

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" 
     > 
+0

layout_below將顯示圖像下的內容,但我只是顯示上的右側的圖像內容。 – user2559787

+0

你給了文本寬度屬性fill_parent,但父母佈局有一個寬度屬性wrap_content,所以它會佔用很長的時間的空間。 imageview沒有空間會消失圖像。 @ user2559787 –

+0

您可以嘗試在textView的父佈局中使用固定寬度。 –

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> 
0

我認爲這正在發生的事情,因爲你已經給你的TextView的寬度FILL_PARENT和它佔用的空間大小是它的長度,則其父寬度WRAP_CONTENT,如此這般高達它的孩子佔據空間(即TextView),所以你沒有空間來顯示ImageView。

您可以嘗試使用的LinearLayout作爲根佈局而不是relativeLayout..and通過給他們的權重管理的意見..