3

TabLayout の選択されたタブ インジケーターを、同じ動作に従うカスタム アイコンを使用して変更したいと思います (ユーザーが次のタブに向かってスライドすると、それに応じてアイコンが移動します)。

タブのレイアウトのカスタマイズにしか到達できないため、クラスにはデフォルトのメソッドはありません。TabLayout のソース コードを確認することにしましたが、1) タブ インジケーターが描画されたときに想定される形状の定義があるポイントをクラスで見つけることができず、2) できません。クラスを完全にインポートします。また、プロジェクトはすでに非常に重いため、可能であれば、サードパーティのライブラリを避けたいと考えています.

何か提案はありますか?次の 2 つのアプローチが考えられます。

  1. 「四角形」をカスタム アイコンに置き換えるために、TabLayout クラスをカスタマイズする方法を見つけます。
  2. ViewPager でのユーザーのタッチ ジェスチャを、カスタム ビュー (つまり、私のアイコン) の動きに合わせて調整する方法を見つけます。
4

1 に答える 1

0

現時点で考えられる解決策の 1 つは、目的の「選択したタブ」を表すカスタム ビュー レイアウト ファイルを作成し、XML ファイルで注釈android:tabStripEnabled="false"を付ける必要があるというものです。TabLayout

その後、tablayout インスタンスにリスナーを登録し、どのインデックスが選択されているかを確認し、指定されたインデックスで を呼び出す必要がありますTabLayout.getTabAt(i).setCustomView(yourSelectedCustomView)

のカスタムビューを作成する方法については、こちらをご覧くださいTabLayout: https://stackoverflow.com/a/48258731/4974461

于 2018-11-22T10:44:32.603 に答える