2011-04-12 68 views
20

我对2.1及以上,直到我试图清理我的初始布局及款式为主题的工作程序。现在,应用程序甚至不会以“您必须提供layout_height属性”失败消息指向布局中的第一个EditText视图。“...必须提供layout_height ...”,但它在我的风格资源?

为什么我不能将在每个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> 
... 
+0

<遗憾的所有的编辑以固定O.P.,各位。 – Randy 2011-04-12 23:22:29

+1

尝试在您的样式中添加android:layout_width属性。 – 2011-04-12 23:24:49

+0

感谢@MiguelMorales,但是在抱怨我必须声明layout_width后,实验导致它崩溃。它几乎像这些不能Widget.EditText属性,但别的东西... – Randy 2011-04-13 04:10:05

回答

8

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

你都需要。

+0

没有雪茄。其实,不同的雪茄。在样式中指定并从第一个EditText中删除,它现在抱怨(崩溃)与“...必须指定layout_width ...”。我非常感谢你们给我一个我一直在想的东西的想法。我将不得不看看2.1之后是否会消失。 – Randy 2011-04-13 01:21:11

+0

@Jon,它在2.1,2.2和2.3.3仿真器中表现相同。与Android:layout_height和android:layout_width从EditText上main.xml中删除,并设置的属性中Widget.EditText风格,它仍然崩溃指着我的一个EditText视图失踪layout_width的第一个实例。 – Randy 2011-04-13 04:04:11

+0

如果我的风格=布局中的单个EditText,指向相同的风格,我希望他们可以继承我的活动,即EditText的工作。不太确定我想称之为'修复',但它使原始问题的定义不同。它的某种主题继承问题,恕我直言。 – Randy 2011-04-13 13:26:03

1

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

+0

试过这个(在Android Studio 2.2 RC2中)。你错了xmlns头文件,但添加它并做一个干净的构建不会影响问题。 :( – 2016-09-15 04:26:28

相关问题