Android 将ListView拖放到CardView列表中

Android 将ListView拖放到CardView列表中,android,android-listview,drag-and-drop,nested,android-cardview,Android,Android Listview,Drag And Drop,Nested,Android Cardview,我试图在Gridlayout的每个子级中实现一个拖放ListView。 因此,我的GridLayout由CardView组成(它们也可以拖放)。它已通过此库实现: 和拖放ListView是使用此库实现的: 问题是ListView中的项目无法拖放,只有GridLayout的滚动运动。 在我的活动中,我有一个GridLayout的ScrollView,我认为拖放列表视图的ScrollView没有被考虑在内 当我只有一个CardView(所以ScrollView被禁用)时,拖放就起作用了 所以我尝试了

我试图在Gridlayout的每个子级中实现一个拖放ListView。 因此,我的GridLayout由CardView组成(它们也可以拖放)。它已通过此库实现: 和拖放ListView是使用此库实现的:

问题是ListView中的项目无法拖放,只有GridLayout的滚动运动。 在我的活动中,我有一个GridLayout的ScrollView,我认为拖放列表视图的ScrollView没有被考虑在内

当我只有一个CardView(所以ScrollView被禁用)时,拖放就起作用了

所以我尝试了一些类似下面的黑客行为,但没有任何改变

((GripView)rootView.findViewById(R.id.grip_view)).setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        mParentScrollView.setEnabled(false);
                        break;
                    case MotionEvent.ACTION_UP:
                        mParentScrollView.setEnabled(true);
                        break;
                }
                return true;
            }
        });
有一个XML结构:

fragment\u manage\u program.xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/scroll_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.GridLayout
        android:id="@+id/grid_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:columnCount="1" />

</ScrollView>

fragment\u manage\u program\u item.xml(在GridLayout内部创建)


fragment\u manage\u program\u set\u item.xml(在DynamicList视图中创建)


好的,我已经用需要API级别21的解决方案解决了我的问题:

mDragNDropListView.setNestedScrollingEnabled(true);

对于API级别4或更高级别,您可以使用

好的,我已经解决了需要API级别21的解决方案的问题:

mDragNDropListView.setNestedScrollingEnabled(true);
对于API级别4或更高,您可以使用

mDragNDropListView.setNestedScrollingEnabled(true);