Android ExpandableListView 未在 Linearlayout 中扩展

Android ExpandableListView not expanding in Linearlayout

我正在设计一个布局,但我有两个 ExpandableListView 的问题。我已经使用很多 LinearLayout 开发了我的布局,它可以工作但是列表不会扩展,因为它们没有 space.Now 列表高度是 "fill parent" 但如果我将它更改为像“200dp”这样的数字他们有 space 展开:

我该如何解决这个问题?我不想保留一个数字,因为当列表关闭时仍然是白色 space...那是我的 xml 代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent">
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
            <LinearLayout android:layout_gravity="center_horizontal" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">
                <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/attack" android:textAppearance="?android:textAppearanceLarge" android:textColor="@color/black" />
            </LinearLayout>
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/lance1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/lance" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/lance_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/espadas1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/spade" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/espadas_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/archi1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/archi" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/archi_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/balestre1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/balestre" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/balestre_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/cp1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/cp" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/cp_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/cl1" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/cl" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/cl_attacco" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
                <ExpandableListView
                    android:id="@+id/List"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" >
                </ExpandableListView>
            </LinearLayout>
            <TextView android:textAppearance="?android:textAppearanceLarge" android:textColor="@color/black" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/defense" />
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/lance" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/lance" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/lance_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/espadas" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/spade" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/espadas_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/archi" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/archi" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/archi_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/balestre" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/balestre" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/balestre_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
                <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/cp" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/cp" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/cp_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                    <LinearLayout android:orientation="horizontal" android:focusable="true" android:focusableInTouchMode="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
                        <ImageView android:id="@+id/cl" android:layout_width="wrap_content" android:layout_height="45.0dip" android:src="@drawable/cl" android:adjustViewBounds="true" />
                        <EditText android:id="@+id/cl_difesa" android:layout_width="73.0dip" android:layout_height="wrap_content" android:ems="10" android:inputType="numberDecimal" />
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
            <ExpandableListView
                android:id="@+id/List1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                </ExpandableListView>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

谢谢,贾科莫。

很遗憾,我无法完全回答您的问题。那里发生了很多事情,很难弄清楚什么是什么。另外我不完全确定你在问什么。

但是我要指出,您不应该将 ExpandableListViews 嵌入到 ScrollView 中。用一个可滚动的小部件代替另一个小部件(并且使两个小部件向同一方向滚动)是一个很大的禁忌,并且不会正常工作。你会看到各种各样的问题。

此外,您庞大的 LinearLayout 解决方案看起来比它需要的要复杂得多。我建议开始一个新问题,询问呈现这个 UI 的最佳方式。让它基本上显示应该放置东西的矩形框以及需要滚动的部分。以正确的方式布置所有内容以避免此类问题至关重要。