Как я могу изменить цвет ActionBar отдельных фрагментов в Android? - PullRequest
0 голосов
/ 23 сентября 2019

Есть ли способ изменить цвет фрагментов ActionBar и изменить заголовок, отображаемый на панели ActionBar, на заголовок пункта меню, который был нажат?

Ответы [ 3 ]

0 голосов
/ 23 сентября 2019

Если вы используете AppCompat, вам всегда нужно вызвать getSupportActionBar ()

Изменить заголовок: getSupportActionBar().setTitle("Your Title");

Изменить цвет: getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

Если во фрагменте:

Изменить название: getActivity().getActionBar().setTitle("YOUR TITLE");

Изменить цвет: getActivity().getAcationBar().setBackgroundDrawable(new ColorDrawable(Color.YOUR_COLOR));

Надеюсь, это поможет вам

0 голосов
/ 23 сентября 2019

Если вы используете библиотеки поддержки:

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());
}

в противном случае

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());
}
0 голосов
/ 23 сентября 2019

Это предлагаемый ответ, написанный на Java:

  getActionBar().setTitle("Test");
  getActionBar().setBackgroundDrawable(new ColorDrawable("COLOR"));
...