[Android] viewpager切換頁面,action bar延遲現象

Posted by Huli on 2015-06-22

我用Viewpager搭配action bar的tab來做fragment之間的切換
每個Fragment都加上setHasOptionsMenu(true);,讓每個fragment都有自己對應的Action Bar
但是卻有個問題,那就是用ViewPager滑到Framgent上的時候,會延遲個一秒才換成新的Action bar
這點看了實在是很不順眼

解法是把action bar切換的地方寫在Activity裡面

1
2
3
4
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
invalidateOptionsMenu();
}
1
2
3
4
5
6
7
8
9
10
11
12
@Override
public boolean onCreateOptionsMenu(Menu menu) {
int position = viewPager.getCurrentItem();
if(position==0) {
getMenuInflater().inflate(R.menu.friend, menu);
}else if(position==1){
getMenuInflater().inflate(R.menu.chat, menu);
}else{
}
return super.onCreateOptionsMenu(menu);
}

這樣就可以流暢的切換action bar了