Почему я не должен устанавливать layout_width и layout_height в стиле?
Если у меня много текстовых элементов, служащих ярлыками элементов, я думал, что могу извлечь все, что обычно бывает в них, в стиль, а в макете использовать только
<TextView style="@style/label" android:text="Foo"/>
<TextView style="@style/label" android:text="Bar"/>
со стилем вроде:
<style name="label">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
</style>
Но когда я это делаю, он отлично работает на эмуляторе и устройстве, но редактор Android XML жалуется, что "<TextView>" does not set the required layout_height attribute.
Есть ли причина, почему он сообщает об этом предупреждении?
Ответы
Ответ 1
Вы пытались очистить проект?
Я использую то же самое в некоторых файлах XML для ширины и длины.
Вот пример работы с моим приложением, вы можете посмотреть:
<TextView
android:id="@+id/viewdescription"
android:textIsSelectable="true"
android:layout_below="@+id/rating_bar_view"
android:minLines="8"
style="@style/description" />
И XML:
<style name="description">
<item name="android:layout_gravity">center_horizontal</item>
<item name="android:inputType">textMultiLine</item>
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">14sp</item>
<item name="android:textColor">@color/Black</item>
<item name="android:layout_marginRight">8dp</item>
<item name="android:layout_marginLeft">8dp</item>
Ответ 2
После попытки Build > Clean Project
я все еще испытывал эту проблему в редакторе макетов; полный перезапуск моей IDE решил проблему для меня.
Ответ 3
Я пробовал это, его просто отлично работает.
<EditText
android:id="@+id/edt_mobile_no"
style="@style/login_input_fields"
android:hint="@string/hint_mobile"
android:inputType="phone" />
Ниже ниже стиль для EditText
<style name="login_input_fields">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">40dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:background">@drawable/bg_curved_white_border</item>
<item name="android:paddingRight">10dp</item>
<item name="android:paddingLeft">10dp</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@color/underline</item>
<item name="android:textSize">16sp</item>
<item name="android:typeface">monospace</item>
</style>
Ответ 4
Я хочу разместить родительский ярлык как "@android: style/Widget.TextView"