0

私のアプリでTabLayoutとViewPagerを使用しました。私はページをスワイプするたびにActionBarのタイトルを変更したい。私はある程度までそうすることができました。私が直面している問題は、アプリケーションの起動時に、アクションバーに表示されるタイトルは、私のアプリのタイトルです。私がスワイプして後ろにスワイプすると、タイトルは私が割り当てたもの(正しいもの)になります。TabLayoutでのアプリケーション起動時の特定のタブのデフォルトの「選択」

私のアプリのタイトルが「ABC」だとします。アプリの起動時に、デフォルトのアクションバーのタイトルは「ABC」と表示されます。私がスワイプしてからtab1に戻ると、正しいタイトルが表示されます。

これはおそらく、アプリケーションの起動時に実際に「選択」されていないためです。したがって、コードは機能しません。

私はsetCurrentItemメソッドも使用しています。このメソッドはデフォルトのページを設定しているため、実際には特定のタブを選択するのに役立ちません。

ここで私はあなたのpublic void onPageSelected(int position)セットアップに呼び出されます

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

を使用したコードの抜粋です。デフォルト選択のためにタイルを設定する必要があります。

リスナーを設定した後、または最初のタイトルまたはデフォルトのタブで選択したタイトルを使用して、以前のsetTitile()メソッドを呼び出すだけです。

デフォルト(最初の)タイトルを仮定は、あなたがちょうどあなたの上記のコードの最初または最後の行のよう

setTitle("Favorites"); 

を呼び出すことができます 「お気に入り」です。

関連する問題