Pro Fragment andere Toolbar Farbe

  • Antworten:8
user349582
  • Forum-Beiträge: 13

10.08.2016, 17:35:52 via Website

Hallo Forum,

ich habe einige Fragments und eine Toolbar. Die Toolbar hat eine Standard Farbe. Wenn ich ein neues Fragment öffne, dann soll die Toolbar mit einer anderen definierten Farbe eingefärbt werden. So, dass jedes Fragment seine eigene Farbe hat.

Weiß jmd. wie ich das einfach umsetzen kann?

Vielen Dank :)

Antworten
user349582
  • Forum-Beiträge: 13

10.08.2016, 18:35:06 via Website

Ich habe die Standard Toolbar verwendet, die im Projekt vorgegeben ist.

Ich habe es schon mit toolbar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#0000ff")));versucht, jedoch geht das nicht richtig. Alles was nach toolbarkommt wird rot dargestellt.

Antworten
swa00
  • Forum-Beiträge: 3.704

10.08.2016, 18:49:38 via Website

versuche mal bitte einen "richtigen" wert z.b. #ff000000 für schwarz und #FFFF0000 für rot

Format AARRGGBB

DU kannst auch das hier mal nehmen
http://jgilfelt.github.io/android-actionbarstylegenerator/

ansonsten mittels xml

https://blog.xamarin.com/android-tips-hello-toolbar-goodbye-action-bar/

— geändert am 10.08.2016, 19:14:52

Liebe Grüße - Stefan
[ App - Entwicklung ]

user349582Ludy

Antworten
user349582
  • Forum-Beiträge: 13

12.08.2016, 19:24:16 via Website

Die Toolbar Farbe ist ja nicht das Problem, ich habe den Code aus dem Internet und die Farbe noch nicht geändert. Ich nehme sonst immer den richtigen HEX Code.

Ich kann die Toolbar aber nicht "ansprechen". Meine Toolbar ist in der MainActivity. Jetzt will ich sie ja in einem anderen Fragment ansprechen, aber ich weiß nicht wie..?

In den Import steht import static ... .R.id.toolbar;

Doch, alles was ich nach der Toolbar schreibe, wird rot unterstrichen.. Ich habe kein Plan. Weiß jmd. weiter?

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

12.08.2016, 19:27:57 via App

Du musst aus dem Fragment deine Activity ansteuern.
Am schnellsten mit getActivity() und einem Cast in die jeweilige Klasse. Dort muss es dann entweder einen Getter für die Toolbar geben oder direkt eine Methode set Toolbar Color.

LG Pascal //It's not a bug, it's a feature. :) ;)

user349582

Antworten
user349582
  • Forum-Beiträge: 13

12.08.2016, 19:54:41 via Website

Ähm... okay kannst du das eventuell genauer erklären oder hast du vllt einen guten Link? Oder vllt Code? :D

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

12.08.2016, 22:02:39 via Website

Naja irgendwie musst du ja auf die Tolbar zugreifen.
Ich hätte das auf die schnelle so gemacht:
MainActivity:

public Toolbar getToolbar()
{
return myToolbarObject; //Das musst du halt irgendwo her holen. Entweder du hast es als Klassenvariable oder holst es per findViewById aus dem Layout.
}

DeinFragment:

MainActivity act = (MainActivity)getActivity();
Toolbar tool = act.getToobar();
tool.setBackgroundDrawable(...);

Dabei ist wichtig, dass der Cast stimmt, ist der FragmentHost eine andere Activity als die Main musst du das entsprechend abändern.

LG Pascal //It's not a bug, it's a feature. :) ;)

user349582

Antworten
swa00
  • Forum-Beiträge: 3.704

12.08.2016, 22:05:39 via Website

Hallo User,

Es würde Dir empfehlen, Dich ein wenig in die Grundlagen von Java einzulesen, damit Dir auch Grundbegriffe wie cast / Getter / Setter / ableiten aus Klassen usw geläufig sind.

Hier ein paar hilfreiche links :

http://www.tutorialspoint.com/android/
https://developer.android.com/training/index.html

Und java allgemein
http://openbook.rheinwerk-verlag.de/javainsel/

Liebe Grüße - Stefan
[ App - Entwicklung ]

user349582

Antworten