2011-01-31 11 views
1

アンドロイドアプリのタブレイアウトでスワイプジェスチャーを操作しようとしています。私が取り組んでいるのは、各タブごとに異なるビューを持つ単一のアクティビティです。それらをFrameLayoutに含めるのではなく、私はタブの内容にViewFlipperを使用しています。左右のスワイプジェスチャーをアクティブなタブを現在のタブの左側または右側のアクティブなタブに変更したい。Android-Gesture enabledリストでのタブレイアウト

アイテムが追加された後、3番目のリストとの間でスワイプすると問題が発生します。私は3番目のリストが表示されているが、以前はリストに重ねて表示されている動作を見ています。

これは何が起こっているのですか?

ビュー/タブを切り替えるための私の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> 

+0

また、実装しようとしていることは、タブがニュースと天気アプリ。この質問への答えは、これにも当てはまります:http://stackoverflow.com/questions/4483623/android-news-and-weather-app-tabs。 – brmcmaho

答えて