21

在我尝试使用样式主题清理我的初始布局之前,我有一个 2.1 及更高版本的工作应用程序。现在,该应用程序甚至不会以“您必须提供 layout_height 属性”失败消息开始,该消息指向我在布局中的第一个 EditText 视图。

为什么我不能将在每个 EditText 上运行良好的“layout_height=30dp”移动到... item name="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>
...
4

2 回答 2

9

你有 <item name="android:layout_height">30dp</item> 但没有android:layout_width你的风格。

你需要两者。

于 2011-04-12T23:38:13.277 回答
1

在这里查看我的答案。这很可能与styles.xml文件中缺少的属性有关。

于 2013-07-18T17:29:17.920 回答