Я думал, что источник нашей проблемы был где-то в коде фреймворка. И, конечно же, я нашел несколько подсказок:
Во-первых, если вы заглянете внутрь TabWidget
кода , вы увидите, что метка, установленная в setIndicator
, передается во внутренний класс с именем LabelIndicatorStrategy
, который позаботится о накачке вид, связанный с верхней частью вкладки. Для этого используется XML-файл tab_indicator.xml . Этот макет основан на RelativeLayout
, содержащем ImageView
и TextView
. И если вы посмотрите на свойства текстового представления, то увидите, что оно ссылается на стиль в android styles.xml . И вот, наконец, вы понимаете, что у нас есть ТО:
<item name="ellipsize">marquee</item>
<item name="singleLine">true</item>
Итак, теперь, 2 варианта:
Во-первых, переопределите стиль, создав собственный стиль, который, на мой взгляд, был бы действительно безболезненным, а затем измените эти свойства на то, что подходит вам лучше. Хотя результат может быть не очень хорошим. это потребует некоторого тестирования.
Или наденьте перчатки и скопируйте код из класса TabWidget, потому что другая проблема заключается в том, что внутренний класс, о котором я упоминал, является ... ЧАСТНЫМ, так что наследование невозможно, если я не ошибаюсь ... ТАК, я думаю, очень гораздо больше боли, чем в стиле styles.xml.
Надеюсь, что это вдохновит вас, держите меня в курсе того, что вы получите, пожалуйста. Я все еще заинтересован.