具有可触摸/可聚焦对象的Android ViewPager

时间:2012-03-02 16:47:05

标签: android android-viewpager

我有一个ViewPager,它包含动态添加的视图(从XML中膨胀)并由PagerAdapter控制。添加的视图有一些简单的EditTexts和一个包含可触摸图表的SurfaceView。

为了在用户翻阅视图时从EditTexts中删除焦点,我跟着this suggestion并将以下内容添加到动态添加的视图布局中:

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

这完美无缺,但它引入了一个新问题。用户还需要能够触摸SurfaceView上的图表,但SurfaceView将每个触摸注册为2次触摸(如果我删除上述XML属性,它可以正常工作,但我有EditText焦点问题)。

我尝试了上述XML属性的不同变体(使一些为真,一些为假),但这并没有产生预期的结果。我还尝试在EditTexts中添加一个OnFocusChangeListener,以便上述属性如果有焦点则为true,否则为false。

我已经做了一些搜索但找不到我要找的东西 - 任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:2)

您使用的是onTouchEvent吗?如果是,则注册:

ACTION_UP
ACTION_DOWN
ACTION_MOVE
and more

你可以告诉我们发生了什么,只处理这样的ACTION_UP事件:

public boolean onTouchEvent(MotionEvent event)
{
    int action = event.getAction();

    //When the user lifts up...
    if (action==MotionEvent.ACTION_UP) 
    {
        //Do something here
    }
}

这可能就是你接受两次接触的原因。