简体   繁体   English

如何使 Android ExpandableListView 不可滚动?

[英]How to make Android ExpandableListView not scrollable?

I can't figure it out how to make ExpandableListView not scrollable, always at full size and positioning at the bottom of the layout, but also maintain the ability to scroll the textView if it goes out of bounds.我无法弄清楚如何使 ExpandableListView 不可滚动,始终处于全尺寸并定位在布局的底部,而且还保持在 textView 超出范围时滚动的能力。 I know it is not recommended to have ListView in ScrollView.我知道不建议在 ScrollView 中使用 ListView。 But how to achieve this?但如何实现这一目标? Now everything looks like this:现在一切看起来像这样:

在此处输入图片说明

The layout:布局:

在此处输入图片说明

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:paddingTop="16dp">
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:srcCompat="@mipmap/ic_launcher"
            android:id="@+id/imageView2" />

        <TextView
            android:text="Order description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/imageView2"
            android:id="@+id/orderDescr"
            android:paddingTop="5dp" />
    </RelativeLayout>
</ScrollView>

<TextView
    android:text="label"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textView5"
    android:paddingTop="15dp"
    android:paddingLeft="16dp"
    android:paddingRight="16dp" />

<ExpandableListView
    android:id="@+id/expandableListView"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:indicatorLeft="?
    android:attr/expandableListPreferredItemIndicatorLeft"
    android:childDivider="#00000000"
    android:layout_below="@+id/orderDescr"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginTop="5dp"
    android:layout_marginLeft="16dp"
    android:layout_marginRight="16dp"
    android:headerDividersEnabled="false"
    android:footerDividersEnabled="false"
    android:isScrollContainer="false" />

</LinearLayout>

it work for me它对我有用

ExpandableListView lv = (Expandable) findViewById(R.id.layout_lv);
lv.setOnTouchListener(new OnTouchListener() {
// Setting on Touch Listener for handling the touch inside ScrollView
@Override
public boolean onTouch(View v, MotionEvent event) {
// Disallow the touch request for parent scroll on touch of child view
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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