2

Хорошо, я решил, что использование TabHost было бы неплохо в моем маленьком приложении. Тем не менее, в Android 6.0+, TabActivity и несколько других устарели. Так я написал это: Как использовать TabHost под 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....}} 

И когда я запускаю этот код, IDE бросает мне RuntimtException: «java.lang.IllegalStateException: Вы забыли назвать„общественными недействительными установки (LocalActivityManager activityGroup)“ ?» И я узнал, что ActivityGroup также устарел. Как мне обойти это?

+0

У вас нет! Вы вообще не используете TabHost. –

ответ

3

попробовать этот

<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" /> 

в вашей деятельности

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); 

метод

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

Вот ответ, который я нашел через поиск часов в Интернете Android Tabs with Fragements. Я думаю, что это жизнеспособное решение.

ViewPage и TabLayout находятся в пакете android.support, что означает, что они поддерживают обратные версии, вот почему я решил не использовать его. Трудно даже изучить новую версию Android, и еще сложнее сделать обратный код.