0

タブのレイアウトはアンドロイドでスワイプビューを作成するために使用されますが、カスタマイズする方法は不思議でした。私は通常のボトムインジケータの代わりにボックスインジケータを表示し、デフォルト値を中央に置き、バックグラウンドを変更できるようにしたいと考えています。このタブのレイアウトをカスタマイズする

Something like this

のようなものは、私はいくつかのチュートリアルと私はボタンではなく、指標自体をカスタマイズすることができgithubのプロジェクトを見てきました。

アンドロイドはこれをネイティブで行うことができますか、または私を助けることができるgithub reposがありますか?

+0

チェックイン時に見てみることができます[this](@stackoverflow.com/a/36061773/5628333) –

+0

@ArsenSench私はすでにそれを見てきました。それは私が円と物に変更するように、下部のインジケータバーをカスタマイズすることができますが、私はそれをボックスに変更すると、下部のインジケータはボックスの形になりますが、私は全体のテキストを囲む箱の中に。私はそれができないと思う。 – Tyson

+0

理論的には、空のタブ名を作成し、インジケータレイアウトとしてレイアウト番号inide squareを使用することができます –

答えて

0

これは私がカスタム自分のスタイルにタブが..私はすべてのタブを反復処理し、任意のエフェクトなどを作る方法です:ズーム効果を選択したり、マーキーとき..あなたはこのCustom TabLayout

ViewGroup vg = (ViewGroup) tabs.getChildAt(0); 
    int tabsCount = vg.getChildCount(); 
    for (int j = 0; j < tabsCount; j++) { 
     View view = vg.getChildAt(j); 
     //change drawable for each tabs 
     view.setBackgroundResource(R.drawable.backgroundtabs); 

     //if you want to diff drawable for each tabs for example tabs is 4 
     //if j == 0 view.setBackgroundResource(R.drawable.backgroundtabs1); 
     //if j == 1 view.setBackgroundResource(R.drawable.backgroundtabs2); 
     //if j == 2 view.setBackgroundResource(R.drawable.backgroundtabs3); 
     //if j == 3 view.setBackgroundResource(R.drawable.backgroundtabs4); 

     ViewGroup vgTab = (ViewGroup) view; 
     int tabChildsCount = vgTab.getChildCount(); 
     for (int i = 0; i < tabChildsCount; i++) { 
      View tabViewChild = vgTab.getChildAt(i); 

      // Get TextView Element 
      if (tabViewChild instanceof TextView) { 
       // change font 
       ((TextView) tabViewChild).setTypeface(tf); 
       // change color 
       ((TextView) tabViewChild).setTextColor(getResources().getColor(R.color.white)); 
       // change size 
       ((TextView) tabViewChild).setTextSize(18); 
       // change padding 
       tabViewChild.setPadding(0, 0, 0, 0); 
       //..... etc... 
      } 
     } 
    } 
関連する問題