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 的最佳方式。让它基本上显示应该放置东西的矩形框以及需要滚动的部分。以正确的方式布置所有内容以避免此类问题至关重要。
我正在设计一个布局,但我有两个 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 的最佳方式。让它基本上显示应该放置东西的矩形框以及需要滚动的部分。以正确的方式布置所有内容以避免此类问题至关重要。