2014-09-24 37 views
0

首先,如果已經有對此的答案,我表示歉意,但是我嘗試的所有內容似乎都解決了一個問題,並創建了另一個問題!ListView中的LinearLayout的佈局寬度問題

我試圖創建一個列表視圖,看起來是這樣的:

GeneralLabel1   SubListItem1 Text 
|ICON|     SubListItem2 Text 
|ICON|     SubListItem3 Text 
----------------------------------------- 
GeneralLabel2   SubListItem1 Text 
|ICON|     SubListItem2 Text 
|ICON|     
----------------------------------------- 
GeneralLabel3   SubListItem1 Text 
|ICON|     SubListItem2 Text 
|ICON|     SubListItem3 Text 
         SubListItem4 Text 
         SubListItem5 Text 

目前,我使用的是BaseAdapter打造的「GeneralLabel」視圖(其中只包含一個TextView和LinearLayout中),和然後通過每個連接到它的SubListItems的迭代,使用

rootView = view; 
if (rootView == null){ 
    rootView = inflater.inflate(R.layout.adapteritem_generalitem,viewGroup,false); 
} 
LinearLayout subListItemLayout = (LinearLayout)rootView.findViewById(R.id.subListItemLayout); 
for (SubListItem item: GeneralItem.subItems){ 
    View childView = inflater.inflate(R.layout.adapteritem_sublistitem,null); 
    ((TextView)childView.findViewById(R.id.subListItemField1)).setText(item.field1String); 
    ((TextView)childView.findViewById(R.id.subListItemField2)).setText(item.field2String); 
    subListItemLayout.addView(childView); 
} 
return rootView; 

膨脹爲rootView的XML佈局如下:

<?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="match_parent" 
       android:orientation="horizontal"> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_weight="1"> 
     <TextView 
      android:id="@+id/generalLabel" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="10dp" 
      android:paddingRight="5dp" 
      android:textAppearance="?android:attr/textAppearanceMedium"/> 
     <ImageView 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:id="@+id/avIndicator" 
      android:layout_marginTop="10dp" 
      android:layout_marginLeft="50dp"/> 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/subListItemLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:orientation="vertical"/> 
</LinearLayout> 

充氣用於SubListItem行中的XML佈局如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="wrap_content"> 
     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/colon_separator" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/separator" 
      android:layout_centerInParent="true"/> 
     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/subListItemField1" 
      android:layout_toLeftOf="@+id/separator" 
      android:gravity="right" 
      android:paddingRight="10dp" 
      android:layout_centerVertical="true" 
      android:textColor="@color/Xercisr_Dark_Gray" 
      /> 
     <TextView 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/subListItemField2" 
      android:layout_toRightOf="@+id/separator" 
      android:paddingLeft="10dp" 
      android:layout_centerVertical="true"/> 
    </RelativeLayout> 

我的問題是,無論是GeneralLabel字段和SubListItem行的寬度是可變的。我需要給SubListItem行賦予優先級,並將它們顯示在一行上(如果需要,強制GeneralLabel打破多行)。目前的解決方案產生輸出的合適的類別,但SubListItem行分成多行。

任何幫助將不勝感激。

回答

0

你可以嘗試添加一行屬性subListItem

android:singleLine = "true" 
+0

三江源 - 接近,但沒有雪茄不幸。我只是在屏幕上顯示的內容的最後得到一個省略號 – 2014-09-24 22:51:48

+0

我剛剛意識到singleLine已被棄用。使用maxLines來設置行數。 ''android:maxLines =「1」; android:scrollHorizo​​ntally =「true」//這允許水平滾動android:ellipsize =「none」' – user3806339 2014-09-25 03:57:21