ListView中LinearLayout的布局宽度问题

时间:2014-09-24 21:51:21

标签: java android android-layout android-xml

首先,如果已经有答案,我道歉,但我尝试的一切似乎都解决了一个问题,并创造了另一个问题!

我正在尝试创建一个类似于以下内容的列表视图:

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" view(只包含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行突破多行。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以尝试将单行属性添加到subListItem

android:singleLine = "true"