2011-04-12 70 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

相關問題