2013-10-28 72 views
1

我有這樣定義的ListView項目清單(單排):Android中的物品高度沒有包裝內容,爲什麼?

<?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="?android:attr/listPreferredItemHeight" 
    android:padding="6dip" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="6dip" 
     android:contentDescription="TODO" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/secondLine" 
     android:layout_width="fill_parent" 
     android:layout_height="26dip" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_toRightOf="@id/icon" 
     android:ellipsize="marquee" 
     android:singleLine="true" 
     android:text="Author" 
     android:textSize="12sp" /> 

    <TextView 
     android:id="@+id/firstLine" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@id/secondLine" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toRightOf="@id/icon" 
     android:gravity="center_vertical" 
     android:text="Title" 
     android:textSize="16sp" /> 

</RelativeLayout> 

正如你可以看到我有兩個TextView S和一個ImageView。 firstLine視圖可以是多行的。問題在於,當我擁有多行代碼時,它並未包裝內容。當第一行高度改變時,單行的高度應該改變,並且即使其高度改變,ImageView也應始終居中居中。如何實現這一目標?我會爲這些佈局瘋狂!

+0

你有,你實際上是膨脹的代碼排入listview?我的猜測是你沒有將容器傳遞到你的LayoutInflater中,因此它不知道如何佈置相對於容器的行項目。 – pat

+0

由於行高度太小或者它只是持續離開屏幕一側,textview是否被切斷? – BigT

回答

0

enter image description here您可以很方便地實現您所需的UI的線性佈局像下面

<?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:background="#3d92ff" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_marginRight="6dip" 
     android:contentDescription="TODO" 
     android:src="@drawable/ic_launcher" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/firstLine" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_above="@id/secondLine" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignWithParentIfMissing="true" 
      android:layout_toRightOf="@id/icon" 
      android:gravity="center_vertical" 
      android:maxHeight="60dp" 
      android:text="This is multiline text , 
     I am line no 2 
     I am line 3 
     i am aline 4 
     i am aline 5" 
      android:textSize="16sp" /> 

     <TextView 
      android:id="@+id/secondLine" 
      android:layout_width="fill_parent" 
      android:layout_height="26dip" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_toRightOf="@id/icon" 
      android:ellipsize="marquee" 
      android:singleLine="true" 
      android:text="Author" 
      android:textSize="12sp" /> 
    </LinearLayout> 

</LinearLayout> 
+0

我的錯在哪裏? – Angelo

1

您的清單查看項目有固定高度= ?android:attr/listPreferredItemHeight,這使得無法擴大其高度。我已經修改了你的佈局,現在它應該工作:

<?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="6dip" > 

    <ImageView 
     android:id="@+id/icon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginRight="6dip" 
     android:contentDescription="TODO" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/firstLine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_toRightOf="@id/icon" 
     android:gravity="center_vertical" 
     android:text="Title" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/secondLine" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/firstLine" 
     android:layout_toRightOf="@id/icon" 
     android:ellipsize="marquee" 
     android:singleLine="true" 
     android:text="Author" 
     android:textSize="12sp" /> 

</RelativeLayout> 
相關問題