【问题标题】:ViewFlipper inside scroll view in androidandroid中滚动视图内的ViewFlipper
【发布时间】:2014-09-07 04:10:06
【问题描述】:

我有一个视图翻转器,其内容超出了屏幕大小,因此我将它放置在 ScrollView 中。但是这样做之后,视图翻转器的 OnTouchEvent 不起作用,因为滚动手势是由 ScrollView 处理的。

我希望滚动视图处理滚动,但也允许其子视图(ViewFlipper)处理 scoll 事件。我怎样才能做到这一点。

这是翻转器和滚动视图的代码:

<ScrollView
    android:id="@+id/scroll"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent">
        <ViewFlipper
            android:id="@+id/flipperDetails"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"></ViewFlipper>
</ScrollView>

【问题讨论】:

    标签: android scrollview viewflipper


    【解决方案1】:

    我正在使用类似的代码嵌套 viewpager,这也适用于滚动视图:

    public class NestedScrollView extends ScrollView {
    
    public NestedScrollView(Context context) {
        super(context);
    }
    
    public NestedScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    
    @Override
    protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
        if (v != this && v instanceof ViewFlipper) {
           return true;
        }
        return super.canScroll(v, checkV, dx, x, y);
    }
    }
    

    还将 xml 中的 ScrollView 更改为 NestedScrollView。

    编辑:

    可以滚动

    在给定 dx 增量的情况下测试 v 的子视图中的可滚动性。

    如果 v 的子视图可以滚动 dx 的增量,则返回 true。

    【讨论】:

    • 一切都与canScroll有关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多