должен указать layout_height, но это в моих ресурсах стиля?

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

Почему я не могу переместить 'layout_height=30dp, который отлично работал в каждом EditText, в... имя элемента=android:layout_height›30dp‹... в стиле, указанном в моей теме?

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

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

Идеи? Кто-нибудь? Какая очевидная вещь упускается из виду? Спасибо заранее за любые предложения!

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>
...

person Randy    schedule 12.04.2011    source источник
comment
‹Извините за все правки, чтобы исправить ОП, ребята.   -  person Randy    schedule 13.04.2011
comment
Попробуйте добавить в свой стиль атрибут android:layout_width.   -  person Miguel Morales    schedule 13.04.2011
comment
Спасибо @MiguelMorales, но этот эксперимент приводит к сбою после жалобы на то, что я должен объявить layout_width. Это почти похоже на то, что это не могут быть атрибуты Widget.EditText, но что-то еще...   -  person Randy    schedule 13.04.2011


Ответы (2)


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

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

person Jon Willis    schedule 12.04.2011
comment
Нет сигары. На самом деле, другая сигара. Оба они указаны в стиле и удалены из первого EditText, теперь он жалуется (вылетает) с... должен указать layout_width.... Я благодарю вас, ребята, за то, что вы дали мне нестандартное представление о том, что я был думая, т. Я собираюсь посмотреть, исчезнет ли это после 2.1. - person Randy; 13.04.2011
comment
Что ж, @Jon, он ведет себя одинаково в эмуляторах 2.1, 2.2 и 2.3.3. Когда android:layout_height и android:layout_width удалены из EditText в main.xml и установлены в качестве атрибутов стиля Widget.EditText, он по-прежнему падает, указывая на мой первый экземпляр представления EditText как на отсутствующий layout_width. - person Randy; 13.04.2011
comment
Если я стилизую = отдельные элементы EditText в макете, указывая на тот же стиль, который, как я надеялся, они унаследуют через тему моей деятельности, работу EditText. Не уверен, что хочу называть это «исправлением», но это меняет определение исходной проблемы. Это какая-то проблема наследования темы, ИМХО. - person Randy; 13.04.2011
comment
нужна помощь модераторов. Ваш ответ был определенно точным и полезным, но исходная постановка проблемы оказалась ошибочной. - person Randy; 14.04.2011
comment
вы можете попробовать отредактировать свой вопрос, но я не уверен, что еще вы можете сделать: P - person Jon Willis; 14.04.2011
comment
Вы решили это? У меня такая же проблема и не могу найти решение. - person ivy_the; 13.10.2015

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

person jonstaff    schedule 18.07.2013
comment
Пробовал это (в Android Studio 2.2 RC2). Вы были правы в том, что заголовок xmlns отсутствовал, но его добавление и выполнение чистой сборки не повлияло на проблему. :( - person David Lord; 15.09.2016