android: actionBarStyle requiere nivel de API 11


Mientras se usa el ActionBarSherlock en xml en:

<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

Tengo este error:

android:actionBarStyle requires API level 11 (current min is 8) error

Lo estoy usando para volver a portar mi aplicación con actionbar a dispositivos 2.2.

Cómo usarlos juntos:

 <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
 <item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
Author: tiago, 2013-03-11

4 answers

Solo tienes que usar :

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 

Como puede obtener el error, tiene android:actionBarStyle disponible en el nivel de API 11.


Si desea que su ActionBar tenga el mismo estilo en todos los niveles de API, debe crear carpetas diferentes para el nivel de API seleccionado y crear nuevas style.xml/themes.xml archivos en estas carpetas.

Por ejemplo:

- res
  -- values
     -- styles.xml
     -- themes.xml // API LEVEL 8+
 -- values-v11
     -- styles.xml
     -- themes.xml // API LEVEL 11+
 -- values-v14
     -- styles.xml
     -- themes.xml // API LEVEL 14+

La segunda cosa que se me ocurre es tener cuidado de qué temas están incluyendo a su actual en diferentes Niveles de API.

Por ejemplo, para el nivel de API 8: usará @style/Theme.Sherlock.Light.DarkActionBar y solo tendrá que usar actionBarStyle. Mientras que el estilo de la barra de acciones para el nivel de API 14+, no necesitará actionBarStyle, porque probablemente establecerá Holo.Light tema como padre para su actual, por lo que en esta situación tendrá que utilizar android:actionBarStyle.

 77
Author: hardartcore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-22 16:04:21

Otra opción es usar el atributo tools:targetApi, que requiere el espacio de nombres tools. Esto actúa de manera similar a la anotación @TargetApi que puede usar en archivos java.

<resources xmlns:tools="http://schemas.android.com/tools">

<style name="MyThemes.MyTheme">
    <item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
    <item name="android:actionBarStyle" tools:targetApi="11">@style/Widget.Styled.ActionBar</item>
</style>

</resources>

Tenga en cuenta el xmlns:tools="http://schemas.android.com/tools" en la etiqueta <resources>, como se requiere.

 146
Author: InsanityOnABun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-13 18:30:09

Simplemente puede seleccionar errores en Eclipse y presionar la tecla "Eliminar". A continuación, simplemente ejecute el proyecto y funcionará.

Tiene que eliminar estos errores cada vez que modifica su XML.

 7
Author: Timothy T.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-11 13:51:06

Depende de la versión del SDK a la que quieras dirigirte:

Dispositivos objetivo inferiores a 11:

En su AndroidManifest.xml uso:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="x" android:maxSdkVersion="10"/>

X cualquier cosa entre 8-10 (depende de su código)

En tu estilo usa:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>

Apunta a cualquier dispositivo:

En su AndroidManifest.xml uso:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

16 usado en ActionBarSherlock el ejemplo puede ser cualquier mayor o igual a 11 (depende de su código)

En tu estilo usa ambos:

<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item> 
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>

El 1er es para ActionBarSherlock tema y el 2nd es para usar el mismo tema en dispositivos Android que ya son compatibles ActionBar

Editar: Para borrar las advertencias de pelusa (subrayado rojo en el archivo XML que puede aparecer):

Advertencias Claras de Pelusa

 7
Author: madlymad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-12 07:24:22