Android ActionBar mit unterschiedlichen Farben für Tabs

LucasZL

Mitglied
Guten Abend

ich hab grad eine Tab Menüführung in meine App integriert mit folgender Activity:

Java:
public class Main extends ActionBarActivity{
	
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		// loads the actionBar
		ActionBar actionbar = getSupportActionBar();
		actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
		actionbar.setDisplayShowHomeEnabled(false);
		actionbar.setDisplayShowTitleEnabled(false);
		actionbar.setDisplayShowCustomEnabled(false);

		// loads the Tabs in the actionBar
		ActionBar.Tab TabA = actionbar.newTab().setText("1");
		ActionBar.Tab TabB = actionbar.newTab().setText("2");
		ActionBar.Tab TabC = actionbar.newTab().setText("3");
		ActionBar.Tab TabD = actionbar.newTab().setText("4");
		ActionBar.Tab TabE = actionbar.newTab().setText("5");
		ActionBar.Tab TabF = actionbar.newTab().setText("6");

		// makes new fragments
		Fragment fragmentA = new Fragment1();
		Fragment fragmentB = new Fragment2();
		Fragment fragmentC = new Fragment3();
		Fragment fragmentD = new Fragment4();
		Fragment fragmentE = new Fragment5();
		Fragment fragmentF = new Fragment6();

		// makes new Listener
		TabA.setTabListener(new MyTabsListener(fragmentA));
		TabB.setTabListener(new MyTabsListener(fragmentB));
		TabC.setTabListener(new MyTabsListener(fragmentC));
		TabD.setTabListener(new MyTabsListener(fragmentD));
		TabE.setTabListener(new MyTabsListener(fragmentE));
		TabF.setTabListener(new MyTabsListener(fragmentF));

		// loads Tabs in actionBar
		actionbar.addTab(TabA);
		actionbar.addTab(TabB);
		actionbar.addTab(TabC);
		actionbar.addTab(TabD);
		actionbar.addTab(TabE);
		actionbar.addTab(TabF);
	}
	
	public void vorher (View view) {
    	Intent weiter = new Intent (this, StudiumFragment.class);
    	startActivity(weiter);
    }
}

class MyTabsListener implements ActionBar.TabListener {
	public Fragment fragment;

	public MyTabsListener(Fragment fragment) {
		this.fragment = fragment;
	}


	@Override
	public void onTabReselected(Tab arg0,
			android.support.v4.app.FragmentTransaction arg1) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void onTabSelected(Tab arg0,
			android.support.v4.app.FragmentTransaction arg1) {
		// TODO Auto-generated method stub
		
	}


	@Override
	public void onTabUnselected(Tab arg0,
			android.support.v4.app.FragmentTransaction arg1) {
		// TODO Auto-generated method stub
		
	}
	
	
}

Wo und wie kann ich den einzelnen Tabs unterschiedliche Farben zuordnen. Also zum Beispiel Tab1 ist rot und Tab2 ist blau.
Danke für jede Antwort die weiterhilft
 

dzim

Top Contributor
Wie es dir die API verrät (hier: ActionBar.Tab | Android Developers ) ist ein dynamisches ändern der Farbe nicht möglich (normale TabWidgets können das aber, glaube ich. Allerdings ist das nicht das, was du jetzt brauchst). Ich empfehle dir aber die Methode setCustomView für ActionBar.Tab-Elemente. Damit kannst du das sicher regeln!
Viel Erfolg!
 

LucasZL

Mitglied
Wie es dir die API verrät (hier: ActionBar.Tab | Android Developers ) ist ein dynamisches ändern der Farbe nicht möglich (normale TabWidgets können das aber, glaube ich. Allerdings ist das nicht das, was du jetzt brauchst). Ich empfehle dir aber die Methode setCustomView für ActionBar.Tab-Elemente. Damit kannst du das sicher regeln!
Viel Erfolg!

Habe ich schon versucht mit
Java:
ActionBar.Tab TabA = actionbar.newTab().setText("Studium").setCustomView(R.drawable.bckgr);
oder meinst du etwas anderes?
 

dzim

Top Contributor
Du kannst keine Drawable auf einen Viwe setzen! Es steht doch in der API: Layout-ID! Nicht Drawable-ID.
Und damit wäre IMHO auch set Text nutzlos.
Du musst ein komplettes Layout mit zentrierten TextView angeben. Am besten also vorher inflaten und dann den view selbst übergeben, sonst müsstest du für jeden tab ein komplett eigenes Layout machen, was auch Blödsinn wäre.
 

Ähnliche Java Themen

Neue Themen


Oben