Я перевірив питання. Ось такі кроки, які я виконую. Вихідний код розміщений на GitHub:
https://github.com/jiahaoliuliu/sherlockActionBarLab
Замініть фактичний стиль для пристроїв pre-v11.
Скопіюйте та вставте наступний код у файл styles.xml папки значень за замовчуванням.
<resources>
<style name="MyCustomTheme" parent="Theme.Sherlock.Light">
<item name="homeAsUpIndicator">@drawable/ic_home_up</item>
</style>
</resources>
Зауважте, що батьківська програма може бути змінена на будь-яку тему Шерлока.
Замініть фактичний стиль для пристроїв v11 +.
У тій самій папці, де знаходяться значення папки, створіть нову папку під назвою значення-v11. Android автоматично шукатиме вміст цієї папки для пристроїв з API або вище.
Створіть новий файл під назвою styles.xml та вставте наступний код у файл:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyCustomTheme" parent="Theme.Sherlock.Light">
<item name="android:homeAsUpIndicator">@drawable/ic_home_up</item>
</style>
</resources>
Зауважте, що ім'я стилю повинно бути таким же, як файл у папці значень за замовчуванням, а замість елемента homeAsUpIndicator воно називається android: homeAsUpIndicator.
Проблема полягає в тому, що для пристроїв з API 11 або вище, Sherlock Action Bar використовується за замовчуванням Рядок дій, що постачається разом із Android, а ключове ім’я - android: homeAsUpIndicator. Але для пристроїв з API 10 або новішої версії, Sherlock Action Bar використовує власний ActionBar, який як домашній індикатор називається простим "homeAsUpIndicator".
Використовуйте нову тему в маніфесті
Замініть тему програми / активності у файлі AndroidManifest:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme" >