2016-11-09 37 views
0

我正在製作一個帶有兩個片段的活動,並且當我轉到該片段時想更改每個片段的顏色。 我試過無法更改片段工具欄的顏色

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

}

請幫幫忙,我堅持...

+0

哪裏是顏色變化的代碼片段? – androidnoobdev

回答

0

當您使用AppCompactActivity,你需要使用getSupportActionBar()代替getActionBar()

0

使用此行代碼在你MenuPage活動設置自定義顏色的片段工具欄

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

但是我想改變顏色,因爲我改變了片段。@ Sudip Podder –

+0

你在找什麼像[this](https://gfycat.com/CautiousBewitchedJabiru)?然後你可以按照[這個鏈接](http://stackoverflow.com/a/26813188/5829624)。 –

相關問題