How can I change the ActionBar color of individual fragments in Android?

702 Views Asked by At

Is there any way to change the ActionBar color of fragments and change the title displayed in the ActionBar to the title of the menu option that was pressed?

3

There are 3 best solutions below

1
Richardus RIzki K On

This is the suggested answer written in java :

  getActionBar().setTitle("Test");
  getActionBar().setBackgroundDrawable(new ColorDrawable("COLOR"));
3
Muhammad Faisal On

If you are using AppCompat you always have to call getSupportActionBar()

Change Title : getSupportActionBar().setTitle("Your Title");

Change Color : getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

If in Fragment :

Change Title : getActivity().getActionBar().setTitle("YOUR TITLE");

Change Color : getActivity().getAcationBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

Hope this help you

0
Zain On

If you're using support libraries:

android.support.v7.app.ActionBar supportActionBar = ((AppCompatActivity) getActivity()).getSupportActionBar();

if (supportActionBar  != null) {
    supportActionBar.setTitle("My action bar title");
    View view = new View(getContext());
    view.setBackgroundColor(getResources().getColor(R.color.my_color)); 
    supportActionBar.setBackgroundDrawable(view.getBackground());
}

Otherwise:

android.app.ActionBar actionBar = getActivity().getActionBar();
if (actionBar != null) {
    actionBar.setTitle("My action bar title");
    View view = new View(getContext());
    view.setBackgroundColor(getResources().getColor(R.color.my_color));         
    actionBar.setBackgroundDrawable(view.getBackground());
}