Android ActionBar标题不会从PageChangeListener更改

时间:2016-01-25 13:19:11

标签: android android-actionbar

我有一个SlidingTabLayout,我想在每次更改标签时更改ActionBar的标题。我试过这个:

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

                }
});

调试时我确实看到了被调用的代码,但标题没有改变。当尝试从代码中的其他位置设置标题时,它确实有效。 我做了什么问题是什么?

1 个答案:

答案 0 :(得分: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

                }
            });

解决您的问题?