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

带有可触摸/可聚焦对象的Android ViewPager,android,android-viewpager,Android,Android Viewpager,我有一个ViewPager,它保存动态添加的视图(从XML膨胀)并由PagerAdapter控制。添加的视图有一些简单的编辑文本和一个可触摸图表的SurfaceView 为了在用户翻页浏览视图时从EditText中删除焦点,我在动态添加的视图布局中添加了以下内容: android:clickable="true" android:focusable="true" android:focusableInTouchMode="true" 这样做很好,但也带来了一个新问题。用户还需要能够触摸Surf

我有一个ViewPager,它保存动态添加的视图(从XML膨胀)并由PagerAdapter控制。添加的视图有一些简单的编辑文本和一个可触摸图表的SurfaceView

为了在用户翻页浏览视图时从EditText中删除焦点,我在动态添加的视图布局中添加了以下内容:

android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"
这样做很好,但也带来了一个新问题。用户还需要能够触摸SurfaceView上的图表,但是SurfaceView将每个触摸记录为2次触摸(如果我删除了上述XML属性,它工作正常,但我有EditText焦点问题)

我尝试了上述XML属性的不同变体(有些是真的,有些是假的),但没有产生预期的结果。我还尝试将OnFocusChangeListener添加到EditText中,这样,如果有焦点,则上述属性为true,否则为false


我已经做了一些搜索,但找不到我要找的东西-非常感谢您的帮助。

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

ACTION_UP
ACTION_DOWN
ACTION_MOVE
and more
您可以知道发生了什么,并仅处理以下操作事件:

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

    //When the user lifts up...
    if (action==MotionEvent.ACTION_UP) 
    {
        //Do something here
    }
}
这可能就是为什么你会有两次接触