Android Actionbar Sherlock mit Tabs

Bildbeschreibung hier eingeben

Ich versuche, ActionBar Sherlock mit Tabs unten zu implementieren, wie in der oben genannten Draht-Frame gezeigt.

Soll ich TabActivity verwenden? – seit ich gesehen habe, dass es veraltet ist. Welches ist der beste Weg, um das gleiche zu erreichen.

  • Android Pager Sliding Tab mit Icons
  • Viewpager nicht in der RecyclerView-Zeile anzeigen
  • OnPageScrolled () wird nicht aufgerufen
  • Verschachtelte Fragmente mit Unterstützung Bibliothek v4 Revision 11
  • OnTouchEvent wird ausgeführt, wenn die Seite mit ViewPager und PassByValue verschoben wird
  • ViewPager und OnItemClickListener in ListView
  • InfiniteViewPager friert auf setCurrentItem () - Methode ein
  • Verwenden von Android SlidingPaneLayout mit ViewPager
  • 2 Solutions collect form web for “Android Actionbar Sherlock mit Tabs”

    Ich habe diese Funktionalität mit einer SherlockFragmentActivity als tabview container und mit SherlockFragment als tabs implementiert. Hier ist eine Skizze (ich habe die üblichen Android-Aktivität gelegt):

    Dies ist die tabview-Aktivität mit zwei tabs:

     public class TabViewActivity extends SherlockFragmentActivity { // store the active tab here public static String ACTIVE_TAB = "activeTab"; @Override public void onCreate(Bundle savedInstanceState) { .. final ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); // add the first tab which is an instance of TabFragment1 Tab tab1 = actionBar.newTab() .setText("TabTitle1") .setTabListener(new TabListener<TabFragment1>( this, "tab1", TabFragment1.class)); actionBar.addTab(tab1); // add the second tab which is an instance of TabFragment2 Tab tab2 = actionBar.newTab() .setText("TabTitle2") .setTabListener(new TabListener<TabFragment2>( this, "tab2", TabFragment2.class)); actionBar.addTab(tab2); // check if there is a saved state to select active tab if( savedInstanceState != null ){ getSupportActionBar().setSelectedNavigationItem( savedInstanceState.getInt(ACTIVE_TAB)); } } @Override protected void onSaveInstanceState(Bundle outState) { // save active tab outState.putInt(ACTIVE_TAB, getSupportActionBar().getSelectedNavigationIndex()); super.onSaveInstanceState(outState); } } 

    Und das ist das TabFragment , das den Inhalt eines Tabs enthält:

     public class TabFragment extends SherlockFragment { // your member variables here @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_va_esh, container, false); ... // do your view initialization here return view; } } 

    Und schließlich ist dies der TabListener , der die Tabulatoren TabListener :

     public class TabListener<T extends Fragment> implements ActionBar.TabListener{ private TabFragment mFragment; private final Activity mActivity; private final String mTag; private final Class<T> mClass; public TabListener(Activity activity, String tag, Class<T> clz) { mActivity = activity; mTag = tag; mClass = clz; } public void onTabSelected(Tab tab, FragmentTransaction ft) { // Check if the fragment is already initialized if (mFragment == null) { // If not, instantiate and add it to the activity mFragment = (TabFragment) Fragment.instantiate( mActivity, mClass.getName()); mFragment.setProviderId(mTag); // id for event provider ft.add(android.R.id.content, mFragment, mTag); } else { // If it exists, simply attach it in order to show it ft.attach(mFragment); } } public void onTabUnselected(Tab tab, FragmentTransaction ft) { if (mFragment != null) { // Detach the fragment, because another one is being attached ft.detach(mFragment); } } public void onTabReselected(Tab tab, FragmentTransaction ft) { // User selected the already selected tab. Usually do nothing. } } 

    Ich glaube, dass TabActivity zugunsten der Verwendung von Fragmenten veraltet ist – nicht weil die Tab-Navigation ein veraltetes Konzept ist. Verwenden Sie einfach Fragmente und ein TabWidget.

    Auch hier ist eine ähnliche Frage .

    Bearbeiten:

    Hier ist ein Beispiel mit freundlicher Genehmigung von Google: Android Tabs der Fragment Way

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.