У меня есть макет для Виджета приложения , который имеет сетку 3x3 повернутых TextView:
<LinearLayout
style="@style/WidgetButtonLayout"
android:id="@+id/widget_buttons_text_port" >
<LinearLayout style="@style/WidgetButtonRow">
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/upperLeft_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/upperMiddle_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/upperRight_text_port" />
</LinearLayout>
<LinearLayout style="@style/WidgetButtonRow">
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/middleLeft_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/middleMiddle_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/middleRight_text_port" />
</LinearLayout>
<LinearLayout style="@style/WidgetButtonRow">
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/lowerLeft_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/lowerMiddle_text_port" />
<TextView
style="@style/WidgetButton.Text"
android:rotation="-90"
android:id="@+id/lowerRight_text_port" />
</LinearLayout>
</LinearLayout>
Где стили:
<style name="WidgetButtonLayout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:orientation">vertical</item>
<item name="android:weightSum">3</item>
</style>
<style name="WidgetButtonRow">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:orientation">horizontal</item>
<item name="android:layout_weight">1</item>
<item name="android:weightSum">3</item>
</style>
<style name="WidgetButton">
<item name="android:layout_weight">1</item>
<item name="android:layout_width">0dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_margin">1dp</item>
<item name="android:gravity">center</item>
</style>
<style name="WidgetButton.Text">
<item name="android:textSize">15sp</item>
<item name="android:text">@string/button_settings</item>
<item name="android:textColor">@color/widgetButtonText</item>
<item name="android:background">@color/transparent</item>
</style>
Это работает нормально, за исключением того, что текст в каждом из полей сетки переносится на основе не повернутой ширины, а не повернутой ширины, так что текст переносится, когда есть место для его отсутствия ... см., например, верхний левый блок сетки в виджете ниже:
![enter image description here](https://i.stack.imgur.com/0OsNc.jpg)
Есть идеи, как это исправить? Я думал только об использовании фиксированного и более широкого, чем нужно, TextView, но проблема здесь в том, что TextView динамически измеряется на основе компоновки сетки.
РЕДАКТИРОВАТЬ, отметьте, что, поскольку это установлено в контексте Виджет приложения, этот макет предназначен для RemoteViews, и я не могу использовать setRotation()
для программной установки поворота в TextView (см. здесь ), а другие аналогичные параметры также ограничены.