简体   繁体   中英

Android ExpandableListView not expanding in Linearlayout

I'm working on a layout but i have problems with two ExpandableListView . I've developed my layout using a lot of LinearLayout, it works but the lists doesn't expand because they doesn't heve the space.Now the lists height is to "fill parent" but if i change it to a number like "200dp" they have the space to expand:

在此处输入图片说明

How can I fix this? I don't want to keep a number because when the list is closed remains a white space...That's my xml code:

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

Thanks, Giacomo.

Unfortunately I can't completely answer your question. There's a lot going on there and hard to figure out what is what. Also I'm not entirely sure what you are asking.

However I will point out that you should not embed the ExpandableListViews within the ScrollView . Having a scrollable widget instead another (and having both scroll the same direction) is a big no no and won't work right. You'll see all sorts of problems.

Additionally, your massive LinearLayout solution looks far more complicated then what it needs to be. I'd suggest starting a new question that asks the best way to render this UI. Have it show basically the rectangular boxes of where things should be placed and what part needs to be scrolled. It's critical you layout everything the proper way to avoid these such issues.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM