2014-05-17 27 views
5

Biliyorum bilmek istiyorum ActionBar (Support Library içinde) Arka Plan Rengi, seçili sayfaya veya seçilen eylem çubuğu sekmelerine göre dinamik olarak değişebilir. Aşağıdaki kod ile denedim. Ama işe yaramıyor. Lütfen yardım et.Change ActionBar Arka Plan Rengi Dinamik olarak

mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 

    @Override 

    public void onPageSelected(int position) { 

     actionBar.setSelectedNavigationItem(position);  

     if(position == 0){ 
      actionBar.setBackgroundDrawable(new ColorDrawable(Color.GREEN)); 
     }else if(position == 1){ 
      actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE)); 
     }else{ 
      actionBar.setBackgroundDrawable(new ColorDrawable(Color.YELLOW)); 
     } 

    } 
}); 
+0

onPageSelected içinde hangisinin bir Tost yapmak olduğunu

 actionBar.setBackgroundDrawable(Color.BLACK); 

propaganda tıkladıysanız yanlış pozisyon gösterebilir – user3465277

+0

Toast ile test ettim. Pozisyon düzeltildi. ViewPager'de sadece üç sayfa var. –

cevap

5

böyle bir şey yapın bu

ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31")); 
actionBar.setBackgroundDrawable(colorDrawable); 
+0

Normalde, bu kod çalışıyor. Ancak, onu mViewPager'ın (int position) işlevine koyduğunuzda, işe yaramıyor. Vizördeki sayfa değiştiğinde, actionbar'ın arka plan rengi beyaza dönüşür. –

+1

Bu işe yaradı, ancak statusBar rengini dinamik olarak değiştirmeye ne dersiniz? –

-1

gibi deneyin: Bu hangi pozisyonu gösterilen olacaktır kolay yolu Öncelikle

+1

Bu işe yaramayacak - setBackgroundDrawable() bir * int *. – goRGon