Android-支持手势和列表的选项卡布局

Android-支持手势和列表的选项卡布局,android,layout,tabs,gesture,swipe,Android,Layout,Tabs,Gesture,Swipe,我正在尝试在android应用程序中使滑动手势与选项卡布局一起工作。我使用的是一个单一的活动,每个选项卡具有不同的视图。我没有将它们包含在框架布局中,而是将ViewFlipper用于选项卡内容。我想进行左/右滑动手势,将活动选项卡从活动选项卡更改为当前选项卡左侧或右侧的选项卡 在向我的第三个列表中添加项目后,在其中来回滑动时会出现问题。我看到一个行为,其中显示了第三个列表,但它覆盖在我之前所在的列表上 知道为什么会这样吗 切换视图/选项卡的java代码: public void onSwipe(

我正在尝试在android应用程序中使滑动手势与选项卡布局一起工作。我使用的是一个单一的活动,每个选项卡具有不同的视图。我没有将它们包含在框架布局中,而是将ViewFlipper用于选项卡内容。我想进行左/右滑动手势,将活动选项卡从活动选项卡更改为当前选项卡左侧或右侧的选项卡

在向我的第三个列表中添加项目后,在其中来回滑动时会出现问题。我看到一个行为,其中显示了第三个列表,但它覆盖在我之前所在的列表上

知道为什么会这样吗

切换视图/选项卡的java代码:

public void onSwipe(int direction) {     
    switch (direction) {     
        case SimpleGestureFilter.SWIPE_RIGHT : swipeRight(); break;
        case SimpleGestureFilter.SWIPE_LEFT :  swipeLeft(); break;
    }    
}

private void swipeLeft() {  

    viewFlipper.setInAnimation(this,R.anim.slide_in_right);
    viewFlipper.setOutAnimation(this,R.anim.slide_out_left);
    viewFlipper.showNext();
    tabHost.setCurrentTab( (tabHost.getCurrentTab()+1 ) % NUMTABS );
}

private void swipeRight() {

    viewFlipper.setInAnimation(this, android.R.anim.slide_in_left); 
    viewFlipper.setOutAnimation(this,android.R.anim.slide_out_right);
    viewFlipper.showPrevious();
    tabHost.setCurrentTab( (tabHost.getCurrentTab()+(NUMTABS-1) ) % NUMTABS ); //loop around to avoid -1
}
我的布局:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="5dp">
    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />
    <ViewFlipper
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@android:id/tabs"
        android:layout_above="@+id/search_button"
        android:padding="5dp" >          
         <ListView android:id="@+id/list1"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:choiceMode="multipleChoice"
          android:layout_alignParentTop="true"
          android:textFilterEnabled="true"/>

         <ListView android:id="@+id/list2"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:choiceMode="multipleChoice"
          android:layout_alignParentTop="true"
          android:textFilterEnabled="true"/>


         <ListView android:id="@+id/list3"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content" 
          android:layout_alignParentTop="true"/>


     </ViewFlipper>
     <Button android:id="@+id/search_button"
              android:layout_width="fill_parent"
              android:layout_height="wrap_content"
              android:layout_alignParentBottom="true"
              android:text="Search" />

</RelativeLayout>


现在,Android SDK兼容性库支持开箱即用:

还请注意,我尝试实现的功能与新闻和天气应用程序中选项卡的工作方式非常相似。此问题的答案也适用于此问题:。