2

D'accord, j'ai décidé que l'utilisation de TabHost serait bien dans ma petite application. Cependant, sous Android 6.0+, TabActivity et plusieurs autres ont été abandonnés. Je l'ai écrit: Comment utiliser TabHost sous android 6.0+

public class TabMain extends Activity{ 
@Override 
protected void onCreate(Bundle bundle){ 
    super.onCreate(bundle); 

    setContentView(R.layout.tab_main); 
    TabHost tabHost = (TabHost)findViewById(R.id.tab_main_tabhost); 
    tabHost.setup();//several lines here....}} 

Et quand je lance ce code, IDE me jette un RuntimtException: « java.lang.IllegalStateException: Avez-vous oublié d'appeler 'installation public void (LocalActivityManager activityGroup)' ? " Et j'ai découvert que ActivityGroup est également obsolète. Comment devrais-je contourner cela?

+0

Vous n'en avez pas! Vous n'utilisez pas TabHost du tout. –

Répondre

3

essayer cette

<android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabGravity="fill"/> 
     <android.support.v4.view.ViewPager 
      android:id="@+id/home_viewpager" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

dans votre activité

viewPager = (ViewPager) findViewById(R.id.home_viewpager); 
     viewPager.setOffscreenPageLimit(4); 
     if (viewPager != null) { 
      setupViewPager(viewPager); 
     } 
     TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); 
     tabLayout.setupWithViewPager(viewPager); 
méthode

est

private void setupViewPager(ViewPager viewPager) { 
     adapter = new Adapter(getSupportFragmentManager()); 
     adapter.addFragment(new Store(), "Store");//fragment class name 
     adapter.addFragment(new Post(), "GG Connect");//fragment class name 


     viewPager.setAdapter(adapter); 

    } 
    static class Adapter extends FragmentPagerAdapter { 
     private final List<Fragment> mFragments = new ArrayList<>(); 
     private final List<String> mFragmentTitles = new ArrayList<>(); 

     public Adapter(FragmentManager fm) { 
      super(fm); 
     } 

     public void addFragment(Fragment fragment, String title) { 
      mFragments.add(fragment); 
      mFragmentTitles.add(title); 
     } 

     @Override 
     public Fragment getItem(int position) { 
      return mFragments.get(position); 
     } 

     @Override 
     public int getCount() { 
      return mFragments.size(); 
     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return mFragmentTitles.get(position); 
     } 
    } 
0

Vous devez utiliser TabLayout et ViewPager.

0

Voici une réponse que je trouve des heures sur Internet Android Tabs with Fragements recherche. Je pense que c'est une solution viable ici.

ViewPage et TabLayout sont dans le package android.support ce qui signifie qu'ils prennent en charge les versions antérieures, c'est la principale raison pour laquelle j'ai choisi de ne pas l'utiliser. Il est difficile d'étudier la nouvelle version d'Android, et encore plus difficile à faire du code rétrocompatible.