0

I am making an activity with two fragments and I want to change the color of each fragment when I go to it. I've tried

getActionBar()

and

setColorDrawable()

but it is returning null. Here is my activity and fragment.

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

and here is my fragment

  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) {

}

Please help, I am stuck...

Prateek Paliwal
  • 323
  • 1
  • 10

2 Answers2

0

As you are using AppCompactActivity, you need to use getSupportActionBar() instead of getActionBar().

Vygintas B
  • 1,624
  • 13
  • 31
0

Use this line of code in your MenuPage activity to set custom color in your fragment toolbar

getSupportActionBar().setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#00695C")));
Sudip Podder
  • 830
  • 11
  • 25