如何滚动可展开列表视图(ExpandableListView)?

4
我有一个包含组视图和子视图的可扩展列表视图。我将可扩展列表视图的高度设置为一定程度,但它根本不滚动。为什么会发生这种情况?
我也将其放在ScrollView中,但没有用。
请问有人能帮助我吗?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="460dp"
android:background="@drawable/dealer_contact_body_bg"
android:orientation="vertical" >

<TableRow
    android:id="@+id/header"
    android:layout_width="match_parent"
    android:layout_height="70dp"
    android:background="@drawable/header_bg" >
</TableRow>

<TableRow
    android:id="@+id/load_header"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:background="@drawable/il_header_bg" >

    <LinearLayout
        android:id="@+id/pick_insp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/header_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/pick_insp"
            android:textColor="@android:color/white"
            android:textSize="18dip"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/tripnumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/text2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/trip_no"
            android:textColor="#fff" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/driver"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/text3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/driver"
            android:textColor="#fff" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/date"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/text4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/date"
            android:textColor="#fff" />
    </LinearLayout>
</TableRow>

<TableRow
    android:id="@+id/pir_header"
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:background="@drawable/ir_vin_header_bg" >
</TableRow>

<ExpandableListView
    android:id="@+id/expandableListView2"
    android:layout_width="fill_parent"
    android:layout_height="260dp"
    android:scrollbars="vertical"
    android:clickable="true" >
</ExpandableListView>

<RelativeLayout
    android:id="@+id/relativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/signature_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:background="@drawable/signature_btn" />
</RelativeLayout>

<LinearLayout
    android:id="@+id/toggle_layout"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    android:layout_marginTop="65dp"
    android:background="@android:color/black"
    android:orientation="vertical" >

    <TableRow
        android:id="@+id/toggle_row"
        android:layout_width="fill_parent"
        android:layout_height="45dip"
        android:background="@drawable/il_header_bg" >

        <ToggleButton
            android:id="@+id/toggle_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="990dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/icon_menu"
            android:textOff=""
            android:textOn="" />
    </TableRow>

    <RadioGroup
        android:id="@+id/radiogroup"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_gravity="bottom"
        android:layout_weight="1"
        android:background="@drawable/navbar_background"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/btn_trip"
            style="@style/navbar_button"
            android:drawableTop="@drawable/icon_trip"
            android:text="@string/trip" />

        <ImageView
            android:id="@+id/imgSep1"
            android:layout_width="3dp"
            android:layout_x="253dp"
            android:background="@drawable/menu_separation" />

        <RadioButton
            android:id="@+id/btn_inspection"
            style="@style/navbar_button"
            android:layout_marginLeft="5dp"
            android:drawableTop="@drawable/icon_inspection"
            android:text="@string/insp" />

        <ImageView
            android:id="@+id/imgSep2"
            android:layout_width="3dp"
            android:layout_x="509dp"
            android:background="@drawable/menu_separation" />

        <RadioButton
            android:id="@+id/btn_edvir"
            style="@style/navbar_button"
            android:layout_marginLeft="5dp"
            android:drawableTop="@drawable/icon_edvir"
            android:text="@string/edvir" />

        <ImageView
            android:id="@+id/imgSep3"
            android:layout_width="3dp"
            android:layout_x="765dp"
            android:background="@drawable/menu_separation" />

        <RadioButton
            android:id="@+id/btn_account"
            style="@style/navbar_button"
            android:layout_marginLeft="5dp"
            android:drawableTop="@drawable/icon_account"
            android:text="@string/account" />
    </RadioGroup>
</LinearLayout>

请问有人可以帮我吗?


发布你的布局代码,这样你就可以知道你做错了什么。 - Bharat Sharma
有什么问题吗? - user1441341
2个回答

1

没有必要将其放入滚动视图中。 默认情况下,ExpandableView具有滚动视图。

您可能在可扩展视图或父高度的高度上犯了一些错误。 以下是可扩展列表在固定高度为250时的外观。

 <ExpandableListView
        android:id="@+id/expandable_list_view"
        android:layout_width="fill_parent"
        android:layout_height="250dip"
        android:layout_marginBottom="20dip"
        android:background="@color/white"
        android:cacheColorHint="#00000000"
        android:clickable="true"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dip"
        android:fadingEdge="none"
        android:groupIndicator="@android:color/transparent"
        android:paddingLeft="10dip"
        android:paddingRight="10dip"
        android:scrollbars="none" >
    </ExpandableListView>

此外,了解可扩展视图:http://developer.android.com/reference/android/widget/ExpandableListView.html

*注意:如果父元素的大小也没有严格指定(例如,如果父元素是ScrollView,则无法在XML中为ExpandableListView的android:layout_height属性使用值wrap_content,因为它也可以是任何长度。但是,如果ExpandableListView父元素具有特定大小,例如100像素,则可以使用wrap_content。


谢谢您的回复。我会尝试使用那个解决方案。 - user1441341

0

在适配器内使用此代码

@Override
public void onGroupExpanded(int groupPosition) {
    super.onGroupExpanded(groupPosition);
    
    expandableListView.setOnScrollListener(new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(final AbsListView view, final int scrollState) {
            if (scrollState == SCROLL_STATE_IDLE) {
                view.setOnScrollListener(null);

                new Handler().post(new Runnable() {
                    @Override
                    public void run() {
                        view.setSelection(pos);
                    }
                });
            }
        }

        @Override
        public void onScroll(final AbsListView view, final int firstVisibleItem, final int visibleItemCount,
                             final int totalItemCount) {
        }
    });
}

'pos' 取 childview 的位置值


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接