Support Library mit ActionBar und Tabs

Max1809

Max1809

Fortgeschrittenes Mitglied
6
Hallo zusammen,

ich verwende in meinem Projekt die Support Library um die ActionBar auch pre-3.0 devices zur Verfügung zu stellen.

Nun bin ich allerdings bei dem Problem, dass unter Android Geräten mit Version kleiner 3.0 keine ActionBar angezeigt wird - ebenso keine Tabs. Eigentlich halte ich mich an die Support Library Regeln (meine ich).

Leider habe ich keinen CallStack, da dies jeweils Testgeräte von Beta-Testern waren.

Meine Tabs enthalten jeweils Fragmente und diese Fragmente sind von der Klasse "android.support.v4.app.Fragment" abgeleitet.

Evtl. habe ich auch was grundlegendes falsch gemacht. Ich möchte euch kurz einen Ausschnitt aus dem Konstrukt geben.

Meine MainActivity die sich um das Handling der ActionBar mit den Tabs kümmert:

Code:
public class Hauptmenue_extended extends ActionBarActivity implements         OnClickListener { 

actionBar = getSupportActionBar();     
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);    

  Tab tabB = actionBar.newTab();     tabB.setText("Home"); 
   tabB.setIcon(R.drawable.icon_home);   
  tabB.setTabListener(new TabListener<Startmenue_activity>(this, "Start",             Startmenue_activity.class));  
   actionBar.addTab(tabB);     

 Tab tabA = actionBar.newTab();    
 tabA.setText("");  
   tabA.setIcon(R.drawable.icon_nachrichten_sel);   
  tabA.setTabListener(new TabListener<Nachrichten_activity>(this,             "Nachrichten", Nachrichten_activity.class));   
  actionBar.addTab(tabA);     

 Tab tabC = actionBar.newTab();     
tabC.setText("");   
  tabC.setIcon(R.drawable.icon_favoriten);   
  tabC.setTabListener(new TabListener<Favoriten_activity>(this,             "Favoriten", Favoriten_activity.class));  
   actionBar.addTab(tabC);
Mein TabListener:

Code:
public static class TabListener<T extends Fragment> implements         ActionBar.TabListener {
      private final FragmentActivity myActivity;    
 private final String myTag;    
 private final Class<T> myClass;   
   public TabListener(FragmentActivity activity, String tag, Class<T> cls) {   
      myActivity = activity;  
       myTag = tag;  
       myClass = cls;     }  
    @Override     public void onTabSelected(Tab tab, FragmentTransaction ft) { 
         Fragment myFragment = myActivity.getSupportFragmentManager().findFragmentByTag(myTag); 
         // Check if the fragment is already initialized        
 if (myFragment == null) { 
            // If not, instantiate and add it to the activity        
     myFragment = Fragment.instantiate(myActivity, myClass.getName()); 
            ft.add(android.R.id.content, myFragment, myTag); 
        } else { 
            // If it exists, simply attach it in order to show it            
 ft.attach(myFragment);       
  }     
 }  
    @Override    
 public void onTabUnselected(Tab tab, FragmentTransaction ft) {
          Fragment myFragment = myActivity.getSupportFragmentManager() .findFragmentByTag(myTag);  
        if (myFragment != null) {  
           // Detach the fragment, because another one is being attached      
       ft.detach(myFragment);    
     }   
   }   
   @Override     public void onTabReselected(Tab tab, FragmentTransaction ft) {  
       // TODO Auto-generated method stub    
  }  }

Und jede Fragment-Activity sieht folgendermaßen aus:

Code:
public class Nachrichten_activity extends Fragment implements
  OnChildClickListener, OnClickListener { ...
 
Zuletzt bearbeitet:

Ähnliche Themen

5
Antworten
0
Aufrufe
745
539901
5
M
  • MikelKatzengreis
Antworten
5
Aufrufe
128
swa00
swa00
R
Antworten
6
Aufrufe
1.014
swa00
swa00
Zurück
Oben Unten