2014-12-29 4 views
0

탭과 TabHost가있는 Android 애플리케이션을 만들었지 만 사용자가 스 와이프를 통해 탭간에 전환 할 수 없습니다. 이 앱에 TabActivity를 사용합니다. 사용자는 대부분 탭을 클릭하여 탭이나 활동 사이를 전환합니다.android에서 스 와이프를 통해 탭 사이를 전환하십시오.

MainActivity.Java :

public class MainActivity extends TabActivity { 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Resources ressources = getResources(); 
    TabHost tabHost = getTabHost(); 

    //Home Intent 
    Intent intentHome = new Intent().setClass(this, HomeActivity.class); 
    TabSpec tabSpedHome = tabHost 
      .newTabSpec("Home") 
      .setIndicator("",ressources.getDrawable(R.drawable.icon_home_config)) 
      .setContent(intentHome); 

    //Search Intent 
    Intent intentSearch = new Intent().setClass(this, SearchActivity.class); 
    TabSpec tabSpedSearch = tabHost 
      .newTabSpec("Search") 
      .setIndicator("",ressources.getDrawable(R.drawable.icon_search_config)) 
      .setContent(intentSearch); 

    //Archive Intent 
    Intent intentArchive = new Intent().setClass(this, ArchiveActivity.class); 
    TabSpec tabSpedArchive = tabHost 
      .newTabSpec("Archive") 
      .setIndicator("",ressources.getDrawable(R.drawable.icon_archive_config)) 
      .setContent(intentArchive); 

    //Download Intent 
    Intent intentDownload = new Intent().setClass(this, DownloadActivity.class); 
    TabSpec tabSpedDownload = tabHost 
      .newTabSpec("Download") 
      .setIndicator("",ressources.getDrawable(R.drawable.icon_download_config)) 
      .setContent(intentDownload); 

    //Conctactus Intent 
    Intent intentConctactus = new Intent().setClass(this, ContactusActivity.class); 
    TabSpec tabSpedConctactus = tabHost 
      .newTabSpec("Conctact us") 
      .setIndicator("",ressources.getDrawable(R.drawable.icon_contactus_config)) 
      .setContent(intentConctactus); 

    //AddAllTab 
    tabHost.addTab(tabSpedHome); 
    tabHost.addTab(tabSpedSearch); 
    tabHost.addTab(tabSpedArchive); 
    tabHost.addTab(tabSpedDownload); 
    tabHost.addTab(tabSpedConctactus); 

    //Set Default Tab 
    tabHost.setCurrentTab(0); 
} 

} 

그리고 activity_main.xml :

<?xml version="1.0" encoding="utf-8"?> 
<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"> 
    <LinearLayout 
     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" /> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:padding="5dp" /> 
    </LinearLayout> 
</TabHost> 

답변

1

TabActivity3 년을 위해 사용되지 않습니다. 다른 탭 솔루션을 사용하십시오. 특히 탭 콘텐츠를 스 와이프 할 수있게하려면 탭 내용에 ViewPager을 사용하고 탭에 탭 표시기 (예 : PagerTabStrip)를 사용합니다.