Пользовательская кнопка на ActionBar

Я использую библиотеку ActionBar Sherlock. Итак, чтобы изменить кнопку дома по умолчанию. Я сделал это:

<style name="Theme.mTheme" parent="android:Theme.Sherlock.Light.DarkActionBar">
    <item name="android:homeAsUpIndicator">@drawable/custom_home</item>
</style>

который не работал

Итак, я добавил это тоже:

<item name="homeAsUpIndicator">@drawable/custom_home</item>

теперь работает. У меня есть обычная домашняя иконка/кнопка на каждом ActionBar. Но в 1 из моих действий у меня есть это в коде:

actionBar.setIcon(R.drawable.options_holo_dark);

Когда я нахожусь в этой Деятельности, я вижу значок, который я устанавливаю программно, т.е..., options_holo_dark. 1, который я установил в Theme, т.е..., custom_home не отображается. Но значок переместился вправо, как если бы он дал место слева значку, установленному в теме (хотя и не видно).

Это то, что я получаю сейчас:

enter image description here

Итак, как я могу избежать этого пустого пространства в левой части значка Home?

Спасибо

Ответ 1

Элемент темы android:homeAsUpIndicatorhomeAsUpIndicator для ActionBarSherlock) устанавливает ярлык для значка "вверх" - маленькая стрелка, указывающая влево, которая отображается рядом с значком приложения, когда вы вызывали setDisplayHomeAsUpEnabled(true) в действии бар.

Размер вытягиваемого значения определяет левое поле для значка приложения (логотип). По умолчанию его размеры 16dp x 16dp. Если вы разместите там более широкий доступ, промежуток между краем экрана и значком приложения будет шире, даже если значок вверх не отображается в данный момент.

Если вы хотите изменить значок приложения (логотип). Используйте метод setLogo(int) или setLogo(Drawable) ActionBar. Не забудьте также вызвать setDisplayUseLogoEnabled(true) - этот метод переключается между отображением значка приложения и пользовательского логотипа. Также вы можете определить логотип в манифесте в атрибуте android:logo тегов <application> и <activity> и установить в теме, что вы хотите использовать логотип вместо значка приложения в панели действий.