滚动视图中的 Android 5.0 Datepicker 不起作用(不滚动月份)

Posted

技术标签:

【中文标题】滚动视图中的 Android 5.0 Datepicker 不起作用(不滚动月份)【英文标题】:Android 5.0 Datepicker in scrollview not working (not scrolling months) 【发布时间】:2015-06-05 20:19:03 【问题描述】:

我在片段中实现了新的日期选择器。这包含在滚动视图中。当尝试使用 datepicker 时,我必须单击并按住屏幕上的某个位置,然后才能滚动 datepickers calader 让我们说可能。

有没有办法解决这个问题?

我正在使用这个时间选择器:

我像这样加载它:

 <ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:id="@+id/scrollView2"
    android:layout_row="11"
    android:fillViewport="true"
    android:background="#162229"
    android:layout_column="2"
    android:paddingBottom="20dp">
<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_
    android:layout_
    android:gravity="center"
    android:background="#162229"

    android:orientation="vertical" >

    <DatePicker
        android:id="@+id/datePicker1"
        android:layout_
        android:background="#162229"
        android:calendarTextColor="#fff"
        android:layout_

        android:calendarViewShown="false" > <!-- style="@style/date_picker_style" -->
    </DatePicker>
</LinearLayout>
</ScrollView>

【问题讨论】:

我遇到了同样的问题,不幸的是我不得不使用 DatePickerDialog 并且它可以正常工作。 Good example 和 another example 我也有同样的问题。那一次我用 **bold'android:datePickerMode="spinner"' ** 来避免这个问题。但外观和感觉不会得到 我最好的猜测是 scrollview 父级正在捕获手势,并且它们需要在 ScrollView 获取它们之前由 DatePicker 处理。恐怕我也可能会选择 DatePickerDialog 选项。 【参考方案1】:

创建一个扩展 DatePicker 的类并覆盖以下方法:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev)

    if (ev.getActionMasked() == MotionEvent.ACTION_DOWN)
    
        ViewParent p = getParent();
        if (p != null)
            p.requestDisallowInterceptTouchEvent(true);
    

    return false;

它会正常工作的。 来源:here

【讨论】:

【参考方案2】:

这是因为父 ScrollView 组件。删除滚动视图或使用日期选择器对话框。

【讨论】:

【参考方案3】:

对我来说,这很有用: How to disable and enable the scrolling on android ScrollView?

您在适当时锁定的自定义滚动视图

【讨论】:

以上是关于滚动视图中的 Android 5.0 Datepicker 不起作用(不滚动月份)的主要内容,如果未能解决你的问题,请参考以下文章

滚动视图中的 Android 列表视图

android中的垂直和水平滚动视图

android中的垂直和水平滚动视图

Android在滚动时修复了滚动视图中的背景图像

使用约束布局或android中的任何其他方式进行垂直滚动的粘性视图

滚动视图中的约束布局