2016-01-25 47 views
1

我得到了SlidingTabLayout,我想在每次更改標籤頁時更改ActionBar的標題。我試過這個:Android ActionBar標題不會從PageChangeListener改變

tabs.setOnPageChangeListener(new OnPageChangeListener() 
{ 

     @Override 
     public void onPageSelected(int position) 
     { 

      switch(position) 
      { 
       case 0: 
       getActivity().getActionBar().setTitle("title 0"); 
       case 1: 
       getActivity().getActionBar().setTitle("title 1") 
       case 2: 
       getActivity().getActionBar().setTitle("title 2"); 
       case 3: 
       getActivity().getActionBar().setTitle("title 3");  
      } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onPageScrollStateChanged(int pos) { 
        // TODO Auto-generated method stub 

       } 
}); 

當調試時我看到被調用的代碼,但標題沒有改變。當試圖從代碼中的其他地方設置標題時,它確實起作用。 我做了什麼問題?

回答

0

試試這個:

活動的OnCreate

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
setSupportActionBar(toolbar); 

您的代碼

tabs.setOnPageChangeListener(new OnPageChangeListener() { 

       @Override 
       public void onPageSelected(int position) { 

       switch(position){ 
       case 0: 
       getActivity().getSupportActionBar().setTitle("title 0"); 
       break; 
       case 1: 
       getActivity().getSupportActionBar().setTitle("title 1") 
       break; 
       case 2: 
       getActivity().getSupportActionBar().setTitle("title 2"); 
       break; 
       case 3: 
       getActivity().getSupportActionBar().setTitle("title 3"); 
       break; 

       } 

       @Override 
       public void onPageScrolled(int arg0, float arg1, int arg2) { 
        // TODO Auto-generated method stub 

       } 

       @Override 
       public void onPageScrollStateChanged(int pos) { 
        // TODO Auto-generated method stub 

       } 
      }); 

解決問題了嗎?

+0

工具欄是片段活動的一部分..它不是佈局本身的一部分 –

+0

您可以創建自定義工具欄?生病告訴你,如果你想 –

+0

是的我不知道如何創建一個自定義的。 FragmentActivity自帶了一個ActionBar ..我甚至不確定爲什麼需要設置一個新的操作欄,如果已經存在的話。 –