OnDoubleTap不适用于TabHost

时间:2016-08-15 06:36:47

标签: java android listener

我在使用TabHost的触控侦听器时遇到问题。我想处理所有视图的双击事件,所以我决定将监听器添加到根视图(在我的例子中是TabHost)。
在onCreate of my activity中,我按如下方式设置了视图:

setContentView(R.layout.activity_test);
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
tabHost.setup();
tabHost.setOnTouchListener(new OnTouchListener() {
  private GestureDetector gestureDetector = new GestureDetector(TestActivity.this,
    new GestureDetector.SimpleOnGestureListener() {
    @Override
    public boolean onDoubleTap(MotionEvent e) {
      Toast.makeText(TestActivity.this, "Hello World!", Toast.LENGTH_SHORT).show();
      return true;
    }
  });

  @Override
  public boolean onTouch(View view, MotionEvent event) {
    return gestureDetector.onTouchEvent(event);
  }
});

TabSpec tab1 = tabHost.newTabSpec(TAG_FIRST_TAB);
tab1.setContent(R.id.first_tab);
...

该应用程序的构建没有任何错误,但如果我启动它并在屏幕上的任何地方双击都没有任何反应。

也许查看我的tabhost布局也会有所帮助:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            // several views for the tabs

        </FrameLayout>

    </LinearLayout>

</TabHost>

0 个答案:

没有答案