将滚动事件从子级转移到父级

时间:2019-03-05 08:43:33

标签: android android-viewpager android-imageview android-scrollview pinchzoom

是否可以将滚动事件从子视图转移到父滚动视图?

问题:图像具有缩小缩放功能,并阻止所有触摸事件转移到父滚动视图。

所需的效果:想要将垂直滚动事件传输到ScrollView。基本上,我不希望ImageView处理垂直滚动事件。

<ScrollView
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="40dp"
android:clipToPadding="false"
android:paddingBottom="50dp"
android:scrollbars="vertical">
    <ViewPager
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/five_dp" />

</ScrollView>

传呼机具有类似UI的片段

<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:background="@android:color/transparent"
        android:visibility="visible">

        <ImageView
            android:id="@+id/click_card_image"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="0dp" />
</RelativeLayout>

这是ImageView的触摸监听器

binding.postImage.setOnTouchListener(new View.OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();

                switch (action) {
                    case MotionEvent.ACTION_DOWN:
                    case MotionEvent.ACTION_UP:
                    case MotionEvent.ACTION_MOVE:
                        ((ScrollView)getActivity().findViewById(R.id.scroll)).requestDisallowInterceptTouchEvent(true);
                        return true;
                    default:
                        return true;
                }
            }
        });

谢谢!

0 个答案:

没有答案