私たちの問題の原因は、フレームワークのコードのどこかにあると思いました。そして確かに、私はいくつかの手がかりを見つけました:
まず、TabWidget
コード内を見ると、設定したラベルがsetIndicator
呼び出された内部クラスに渡されLabelIndicatorStrategy
、タブの上部に関連付けられたビューを膨張させることがわかります。このインフレーションは、xml ファイルtab_indicator.xmlを使用して行われます。このレイアウトは、およびRelativeLayout
を含むに基づいています。textview のプロパティを見ると、それが android styles.xmlのスタイルを参照していることがわかります。そして最後に、あなたは私たちがそれを持っていることに気づきます: ImageView
TextView
<item name="ellipsize">marquee</item>
<item name="singleLine">true</item>
したがって、2 つのオプションがあります。
まず、独自のスタイルを作成してスタイルをオーバーライドします。これは、私の意見では、非常に簡単な方法であり、これらのプロパティをより適切なものに変更します。結果はあまり良くないかもしれませんが。これにはいくつかのテストが必要です。
または、手袋を着用して TabWidget クラスからコードをコピーします。ここでの別の問題は、私が言及した内部クラスが... PRIVATE であるため、間違っていなければ継承は不可能です. styles.xml の方法よりもはるかに面倒です。これがあなたに刺激を与えることを願っています。あなたが得たものを私に投稿してください. 私はまだ興味があります。