滑动后通过片段设置标题与getSupportActionBar()不起作用

时间:2018-04-19 14:50:09

标签: android android-fragments

我使用2个片段。让我们来说A&乙

在我的活动中:

 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setHomeButtonEnabled(true);
 getSupportActionBar().setDisplayShowHomeEnabled(true);
 getSupportActionBar().setDisplayUseLogoEnabled(true);
 getSupportActionBar().setLogo(R.drawable.ic_launcher);
 getSupportActionBar().setDisplayShowTitleEnabled(true);
 getSupportActionBar().setTitle("Title A");

滑动前有效。片段1:标题栏显示标题A.

在我的片段中:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
 if (isVisibleToUser == true) {((AppCompatActivity)getActivity()).getSupportActionBar().setTitle("Title B");}

我滑到我的片段B,它完美无缺。标题显示标题B. 现在,我回到片段A,标题保持不变而不是显示标题A(它显示标题B而不是标题A)

但是如果我使用主页按钮触发它,我会使用主页按钮返回,而片段A显示标题A.

代码:

 public boolean onOptionsItemSelected(final MenuItem item)
{

    // Handle item selection
    switch (item.getItemId())
    {  


    case android.R.id.home:
        ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
        int mycurrentpage = pager.getCurrentItem();
        if (mycurrentpage ==0){
            pager.setCurrentItem(1, true);
        }
        if (mycurrentpage ==1){
            pager.setCurrentItem(2, true);
        }
        if (mycurrentpage ==2){
            pager.setCurrentItem(3, true);
        }
        if (mycurrentpage ==3){
            pager.setCurrentItem(4, true);
        }
        if (mycurrentpage ==4){
            pager.setCurrentItem(0, true);
            getSupportActionBar().setTitle("Title A");
        }

        return true;
    }
.......

我怎样才能让它发挥作用?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

不要为此覆盖setUserVisibleHint。这种方法不适合做这样的事情。使用PageChangeListener