android: actionBarStyle wymaga API poziomu 11

Podczas używania ActionBarSherlock w xml pod adresem:

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

Mam ten błąd:

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

Używam go do wstecznego przenoszenia mojej aplikacji z actionbar na urządzenia 2.2.

Jak używać ich obu razem:

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

4 answers

Musisz używać tylko:

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

Ponieważ możesz uzyskać błąd, masz android:actionBarStyle dostępne na poziomie API 11.


Jeśli chcesz, aby Twój ActionBar wyglądał tak samo na wszystkich poziomach API, musisz utworzyć różne foldery dla wybranego poziomu API i utworzyć nowy style.xml/themes.xml pliki w tych folderach.

Na przykład:

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

Drugą rzeczą, o której myślę, to uważać, które tematy są włączone do Twojego obecnego w różne poziomy API.

Na przykład dla API poziomu 8: będziesz używać @style/Theme.Sherlock.Light.DarkActionBar i będziesz musiał używać tylko actionBarStyle. Podczas stylizacji paska akcji dla API poziomu 14+, nie będziesz potrzebował actionBarStyle, ponieważ prawdopodobnie ustawisz Holo.Light motyw jako rodzica dla bieżącego, więc w tej sytuacji będziesz musiał użyć 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/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-22 16:04:21

Inną opcją jest użycie atrybutu tools:targetApi, który wymaga przestrzeni nazw tools. Działa to podobnie do adnotacji @TargetApi, której można używać w plikach 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>

Zwróć uwagę na xmlns:tools="http://schemas.android.com/tools" w znaczniku <resources>, ponieważ jest to wymagane.

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-13 18:30:09

Możesz po prostu wybrać błędy w Eclipse i nacisnąć klawisz "Delete". Następnie po prostu uruchom projekt i będzie działać.

Masz usunąć te błędy za każdym razem, gdy modyfikujesz 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/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-11 13:51:06

To zależy, jaką wersję SDK chcesz kierować:

Target devises lower than 11:

W Twoim AndroidManifest.xml Użyj:

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

X cokolwiek między 8-10 (zależy od Twojego kodu)

W Twoim stylu użyj:

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

Target any device:

W Twoim AndroidManifest.xml Użyj:

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

16 użyty w ActionBarSherlock przykład może być dowolny większy lub równy 11 (zależy od Twojego kodu)

W Twoim stylu użyj obu:

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

Pierwszy jest dla ActionBarSherlock tematu i 2nd jest za używanie tego samego motywu w urządzeniach z Androidem, które już obsługują ActionBar

Edit: aby wyczyścić Ostrzeżenia Lint (czerwone podkreślenie w pliku XML, które mogą się pojawić):

Clear Lint Warnings

 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/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-12 07:24:22