无法更改片段工具栏的颜色

时间:2016-11-09 14:09:48

标签: android android-fragments android-actionbar

我正在制作一个包含两个片段的活动,我想在转到它时更改每个片段的颜色。 我试过了

-13

getActionBar()

但它返回null。 这是我的活动和片段。

setColorDrawable()

这是我的片段

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

}

请帮助,我被卡住了......

2 个答案:

答案 0 :(得分:0)

在使用AppCompactActivity时,您需要使用getSupportActionBar()而不是getActionBar()

答案 1 :(得分:0)

在MenuPage活动中使用此行代码在片段工具栏中设置自定义颜色

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