我有一个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。
我已经做了一些搜索但找不到我要找的东西 - 任何帮助都会非常感激。
答案 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
}
}
这可能就是你接受两次接触的原因。