"... должен предоставить layout_height ...", но это в моих ресурсах стиля? - PullRequest
20 голосов
/ 13 апреля 2011

У меня было рабочее приложение на 2.1 и выше, пока я не попытался очистить свой первоначальный макет темой стилей.Теперь приложение даже не запустится с сообщением об ошибке «Необходимо указать атрибут layout_height», указывающим на мое первое представление EditText в макете.

Почему я не могу переместить работающее layout_height = 30dp?подходит для каждого EditText в ... item name = "android: layout_height"> 30dp <... в стиле, указанном в моей теме? </p>

Практически все мои другие стилевые эффекты, которые я абстрагировал таким образом,работает просто отлично.

[Меня не удивит, когда я узнаю, что это должно быть какое-то стилизованное переопределение к LinearLayout, а не EditText. ИЛИ что это должен быть стилизованный элемент для View, а не Widget.Не знаю]

Идеи? Кто-нибудь? Что упущено из виду? Заранее СПАСИБО за любые предложения!

AndroidManifest.xml:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
<application    android:label="xxx"
    android:icon="@drawable/xxx" >

<activity   android:name="DataEntry"
    android:label="xxx"
    android:theme="@style/xxx_theme.A" >
...

xxx_theme.A.xml

<style name="xxx_theme" parent="@android:Theme" >
  <item name="android:windowNoTitle">true</item>
</style>

<style name="xxx_theme.A" >
  <item name="android:textViewStyle">@style/xxx_TextView_widget</item>
  <item name="android:editTextStyle">@style/xxx_EditText_widget</item>
  <item name="android:checkboxStyle">@style/xxx_CheckBox_widget</item>
  <item name="android:radioButtonStyle">@style/xxx_Radio_widget</item>
</style>

<style name="xxx_EditText_widget" parent="@android:style/Widget.EditText" >
  <item name="android:textSize">9dp</item>
  <item name="android:layout_height">30dp</item>
  <item name="android:paddingLeft">8dp</item>
  <item name="android:paddingTop">1dp</item>
  <item name="android:paddingBottom">1dp</item>
  <item name="android:textColorHint">@color/texthint</item>
  <item name="android:singleLine">true</item>
  <item name="android:selectAllOnFocus">true</item>
  <item name="android:inputType">textNoSuggestions</item>
</style>
...

Ответы [ 2 ]

8 голосов
/ 13 апреля 2011

У вас есть <item name="android:layout_height">30dp</item> , но нет android:layout_width в вашем стиле.

Вам нужны оба.

1 голос
/ 18 июля 2013

Проверьте мой ответ здесь .Скорее всего, это связано с отсутствующим атрибутом в вашем файле styles.xml.

...