Android TimePicker(滚轮样式)无法正确响应ScrollView中的轻弹手势

时间:2012-01-13 07:20:49

标签: android scrollview timepicker

我有一个包含Scrollview的对话框,其中包含一个带有两个TimePickers的布局。

时间选择器是较新的时间选择器,ICS中有什么。

问题在于,当您通过拖动滚轮或轻弹来改变时间时,它们似乎会争取焦点。它会稍微改变时间,然后布局会滚动。

有什么想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:41)

使用Holo主题时遇到了同样的问题,这是我找到解决方案的地方:https://groups.google.com/forum/?fromgroups#!topic/android-developers/FkSfJI6dH8w

您必须实现自定义DatePicker或TimePicker并覆盖以下方法:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
    if (ev.getActionMasked() == MotionEvent.ACTION_DOWN)
    {
        ViewParent p = getParent();
        if (p != null)
            p.requestDisallowInterceptTouchEvent(true);
    }

    return false;
}

答案 1 :(得分:1)

由于来自Klemens Zleptnig的链接已断开,因此这里是一个完整的示例。此修复也有助于TabLayout的滚动。我排除了TimePicker顶部大数字周围的区域,因为它们仍然不需要滚动事件。

xml:

def prob_given_positive (prior, false_positive_rate, true_positive_rate):
  result = [] ## empty list
  pdgp = prior
  for i in range(10+1):
    pdgp = (true_positive_rate * pdgp) / (false_positive_rate)
    result.append(pdgp)
  return(result)

print(prob_given_positive(0.001, 0.08, 1))

java:

<com.name.app.MyTimePicker
                android:id="@+id/timePicker"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
.../>