首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ScrollView中的NumberPicker

ScrollView中的NumberPicker
EN

Stack Overflow用户
提问于 2013-11-17 06:10:49
回答 1查看 1.3K关注 0票数 1

假设我有一个LinearLayout (垂直)的ScrollView,里面有一个NumberPicker。此外,LinearLayout确实包含了足够的小部件,因此它可以滚动。

下面是一个示例XML代码片段:

代码语言:javascript
复制
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <!-- Some widgets here so it scrolls -->

    <NumberPicker
                android:id="@+id/npSec"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />

</LinearLayout>

在安卓4.1.2 (Galaxy S3)上,它工作得很好……您可以滚动布局,然后滚动NumberPicker -只有NumberPicker会滚动。

另一方面,在Android4.0.x上,布局可以很好地滚动,但当NumberPicker试图被滚动时,它会做一些尴尬的事情,比如滚动一半值并在值之间停止;从那里-只有LinearLayout被滚动,NumberPicker被卡住。

这个人问了完全相同的问题,但没有得到任何答案:NumberPicker on ScrollView doesn't scroll on Android 4.0.4

How disable ScrollView -因为ScrollView和NumberPicker都是垂直的,所以这个不能完成工作

我真的很欣赏任何好的解决方案,或者方向...提前谢谢你,马克。

EN

回答 1

Stack Overflow用户

发布于 2015-02-18 22:00:49

我知道这是个老生常谈的问题。

这对我来说很有效:

代码语言:javascript
复制
numberPicker.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(final View v, final MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_MOVE && v.getParent() != null) {
                v.getParent().requestDisallowInterceptTouchEvent(true);
            }
            if (event.getAction() == MotionEvent.ACTION_UP) {
                v.performClick();
            }

            v.onTouchEvent(event);
            return true;
        }
    });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20024564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档