2016-03-23 18 views
0

WhatsAppのようにタブにカウントを表示したいと思います。 enter image description hereカスタムタブがハイライト表示されない

私はタブにカスタムビューを追加しました。このように少し実装することができました。私が今直面している問題は、ページが読み込まれると、最初のタブが強調表示されないということです。ビューページを次のタブにスワイプして戻ってくると、それが強調表示されます。

テキストビューのテキストカラーとしてカラーセレクタを設定しています。

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" 
     android:color="@color/white" /> <!-- pressed --> 
    <item android:state_focused="true" 
     android:color="@color/white" /> <!-- focused --> 
    <item android:state_selected="true" 
     android:color="@color/white" /> 
    <item android:state_active="true" 
     android:color="@color/white" /> 
    <item android:state_active="false" 
     android:color="@color/inactive_tab_color" /> 
    <item android:state_activated="true" 
     android:color="@color/white" /> 
    <item android:color="@color/white" /> <!-- default --> 
</selector> 

これはタブレイアウトです。

<android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="50dp" 
      android:background="@color/red" 
      app:tabTextColor="@color/inactive_tab_color" 
      app:tabSelectedTextColor="@color/white" 
      app:tabIndicatorColor="@color/white" 
      android:layout_gravity="bottom" 
      app:layout_scrollFlags="scroll" /> 

私はgetTabLayout().getTabAt(0).select()viewPager.setCurrentItem(0)を試みたが、作業をしていません。タブが強調表示されていません。

私はこれを達成するために何をすべきですか?

+0

答えはありませんか? –

+0

私の質問が十分明確でない場合、私は説明することができます。 –

答えて

0

この問題で回避策が見つかりました。

タブを初期化する場所に、最初に2番目のタブを選択し、次に1番目のタブを選択するコードを配置します。これらのコードは、ページがユーザーに表示される前に実行されるため、タブのちらつきを感じることはありません。

私はこれが最良の方法ではないことを知っています。これは単なる回避策です。しかし、私は他の解決策を得られなかったので、私はこのために行きました。コードスニペットは次のとおりです。

tabLayout.getTabAt(0).setCustomView(v); 
      tabLayout.getTabAt(1).select(); 
      tabLayout.getTabAt(0).select(); 

上記のコードをタブを初期化する場所に追加します。断片の場合はonActivityCreated()、活性の場合はonCreate()である。

関連する問題