Не удается изменить цвет панели инструментов фрагмент

Я делаю действие с двумя фрагментами, и я хочу изменить цвет каждого фрагмента, когда я иду к нему.
Я пробовал

getActionBar()

и

setColorDrawable()

но он возвращает null.
Вот моя активность и фрагмент.

      public class MenuPage extends AppCompatActivity
    implements NavigationView.OnNavigationItemSelectedListener {


private TabLayout tabLayout;
private ViewPager viewPager;



public List<Food> orderedList = new ArrayList<>();



@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_page);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);


    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
}

   private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    adapter.addFragment(new Veg(), "VEG");
    adapter.addFragment(new NonVeg(), "NON-VEG");
    viewPager.setAdapter(adapter);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment, String title) {
        mFragmentList.add(fragment);
        mFragmentTitleList.add(title);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return mFragmentTitleList.get(position);
    }
}
}

а вот мой фрагмент

  public class Veg extends Fragment{

public Veg() {
}



public static Veg newInstance(String param1, String param2) {
    Veg fragment = new Veg();
    Bundle args = new Bundle();
    args.putString(ARG_PARAM1, param1);
    args.putString(ARG_PARAM2, param2);
    fragment.setArguments(args);
    return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (getArguments() != null) {
        mParam1 = getArguments().getString(ARG_PARAM1);
        mParam2 = getArguments().getString(ARG_PARAM2);
    }
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

}

Пожалуйста, помогите, я застрял…

2 ответа

  1. Как вы используете AppCompactActivity, вам нужно использовать getSupportActionBar()вместо getActionBar().

  2. Используйте эту строку кода в упражнении MenuPage, чтобы задать пользовательский цвет на панели инструментов фрагмента

    getSupportActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#00695C")));