0

我在我的應用程序中使用了TabLayout和ViewPager。我想在每次滑動頁面時更改ActionBar標題。我在某種程度上能夠這樣做。我面臨的問題是,在應用程序啓動時,操作欄上顯示的標題是我的應用程序的標題。當我滑過並返回時,標題變成了我分配的內容(正確的)。在TabLayout中啓動應用程序時,特定選項卡的默認「選擇」

因此,假設我的應用程序的標題是'ABC'。在應用程序啓動時,默認操作欄標題顯示爲「ABC」。當我滑過並返回到tab1時,會顯示正確的標題。

我想這可能是因爲在應用程序啓動時,實際上沒有選擇Tab。因此,代碼不起作用。

我也使用了setCurrentItem方法,它在這種情況下沒有什麼好處,因爲它設置了默認頁面,但實際上並沒有幫助'選擇'特定的選項卡。

這裏的代碼片斷,我用

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     public void onPageScrollStateChanged(int state) {} 
     public void onPageScrolled(int position, float positionOffset, int 
    positionOffsetPixels) {} 

     public void onPageSelected(int position) { 
      final String[] tabTitles={"Favorites", "Friends", "Nearby"}; 
      tabLayout.setNextFocusRightId(position); 
      setTitle(tabTitles[position]); 
     } 
    }); 

回答

0

public void onPageSelected(int position)將在設置被調用。您需要將您的圖塊設置爲默認選擇。

只需在設置偵聽器後甚至在設置第一個標題或默認選項卡選定標題之前調用setTitile()方法即可。

假設你的默認(第一個)的標題是「收藏夾」 你只需調用

setTitle("Favorites"); 

正如你上面的代碼第一個或最後一行。

相關問題