2011-04-12 14 views
20

Tenía una aplicación en funcionamiento en 2.1 y superior hasta que traté de limpiar mi diseño inicial con un tema de estilos. Ahora, la aplicación ni siquiera comenzará con el mensaje de error "Debe proporcionar un atributo layout_height" que apunte a mi primera vista de EditText en el diseño."... debe suministrar un layout_height ..." pero está en mis recursos de estilo?

¿Por qué no puedo mover el 'layout_height = 30DP" que estaba trabajando muy bien en todos los EditarTexto en un ... nombre del elemento = 'android: layout_height'> 30DP < ... en un estilo que se refiere a través de mi tema ?

Prácticamente todos mis otros efectos de estilo que resumieron a cabo como esto están trabajando muy bien.

[no me sorprendería que aprender esto debe haber alguna anulación de estilo a la LinearLayout, no el EditarTexto de. O que tiene que ser un elemento de estilo para la Vista, no el Widget. Dunno]

Ideas? Anyon ¿mi? ¿Qué es lo obvio que se pasa por alto? ¡GRACIAS de antemano por cualquier sugerencia!

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
+1

Intenta agregar un atributo android: layout_width a tu estilo. –

+0

Gracias @MiguelMorales, pero ese experimento resulta en fallas después de quejarse de que debo declarar layout_width. Es casi como estos no pueden ser atributos Widget.EditText, pero algo más ... – Randy

Respuesta

8

Tienes <item name="android:layout_height">30dp</item> pero sin android:layout_width en su estilo.

Necesita ambos.

+0

No cigarro. En realidad, cigarro diferente. Con ambos especificados en el estilo y eliminados del primer EditText, ahora se queja (se bloquea) con "... debe especificar layout_width ...". Les agradezco a todos por darme una idea fuera de la caja de lo que había estado pensando, aunque. Voy a tener que ver si esto se fue después de 2.1. – Randy

+0

Bueno, @Jon, se comporta de forma idéntica en los emuladores 2.1, 2.2 y 2.3.3. Con android: layout_height y android: layout_width quitado de EditText en main.xml, y establecido como atributos en el estilo Widget.EditText, aún se bloquea al señalar a mi primera instancia de una vista EditText como missing_width. – Randy

+0

Si estilo = el EditText individual en el diseño, apuntando al mismo estilo que esperaba que ellos heredarían al tejer mi actividad, el trabajo de EditText. No estoy tan seguro de querer llamar a eso una 'solución', pero hace que la definición del problema original sea diferente. Es algún tipo de problema de herencia de tema, en mi humilde opinión. – Randy

1

Eche un vistazo a mi respuesta here. Lo más probable es que tenga que ver con un atributo faltante en su archivo styles.xml.

+0

Probé esto (en Android Studio 2.2 RC2). Tenías razón en que faltaba el encabezado xmlns, pero agregarlo y hacer una compilación limpia no afectaba el problema. :( –

Cuestiones relacionadas