Подтвердить что ты не робот

Почему я не должен устанавливать 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. Есть ли причина, почему он сообщает об этом предупреждении?

4b9b3361

Ответ 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"