2

У меня есть actionBarStyle, который я внедрил в своем приложении для своего ActionBar. Вот код XML ниже:Android Action Bar не отображается на дисплееОпции - useLogo

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 
    <style name="MyActionBarTheme" parent="@android:style/Theme.Holo"> 
     <item name="android:windowActionBarOverlay">true</item> 
     <item name="android:actionBarStyle">@style/MyCustomActionBar</item> 
    </style> 
    <style name="MyCustomActionBar" parent="@android:style/Widget.Holo.ActionBar"> 
     <item name="android:background">@android:color/transparent</item> 
     <item name="android:backgroundSplit">@android:color/transparent</item> 
     <item name="android:displayOptions">useLogo</item> 
    </style> 

А вот мой Activity OnCreate:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getActionBar().setLogo(R.drawable.ic_logo); 
    setContentView(R.layout.activity_home); 

    initializeViews(); 
    manageFragments(); 
} 

Проблема в том, что мой ActionBar не показывает на всех, и когда я удалить displayOptions пункт из моего XML. Он отображается с заголовком. Теперь я всегда могу удалить заголовок (установите для строки заголовка только пустое), но я не хочу этого, поскольку он показывает стиль/тему по умолчанию ActionBar в течение нескольких секунд, а затем мою пользовательскую тему (я думаю, вы знаете это). Я не знаю, в чем проблема. Пожалуйста помоги. Спасибо ...

ответ

6

Если вы установили android:logo в теме, вам не нужно указывать его в коде.

Я думаю, вам также может понадобиться showHome в настройках вашего экрана, например.

<item name="android:displayOptions">showHome|useLogo</item> 

EDIT

Ниже приведен пример темы я использую, чтобы скрыть логотип и отображать заголовок в панели действий, этот пример использует ActionBarSherlock так что вам нужно будет настроить имена родительских стилей соответственно если вы его не используете.

<style name="AppTheme" parent="style/Theme.Sherlock.Light.DarkActionBar"> 
    <item name="android:windowBackground">@color/background_primary</item> 
    <item name="android:icon">@drawable/appicon</item>  
    <!-- For the home as up icon on sub pages --> 
    <item name="android:homeAsUpIndicator">@drawable/back</item> 
    <item name="homeAsUpIndicator">@drawable/back</item>   
    <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item> 
    <item name="actionBarStyle">@style/AppTheme.ActionBar</item> 
</style> 

<style name="AppTheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> 
<item name="android:displayOptions">showTitle</item> 
<item name="displayOptions">showTitle</item> 

<item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item> 
<item name="titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>  
<item name="android:background">@color/actionbar_bg_color</item> 
<item name="background">@color/actionbar_bg_color</item> 
<item name="android:backgroundStacked">@color/actionbar_bg_color</item> 
<item name="backgroundStacked">@color/actionbar_bg_color</item> 

0

, если вы хотите использовать код для реализации этого эффекта, вы можете позвонить ниже код из фрагмента.

ActionBarActivity activity = (ActionBarActivity) getActivity(); 
activity.getActionBar().setDisplayUseLogoEnabled(true); 
activity.getActionBar().setDisplayShowHomeEnabled(true); 

и вы должны указать атрибут логотип активности в AndroidManifest.xml, например,

<activity 
     android:name=".....MainEntryActivity" 
     android:label="@string/label_main" 
     android:screenOrientation="portrait" 
     android:logo="@drawable/ic_ios_logo" 
     android:theme="@style/AppCompatTheme" > 
    </activity> 
1

Это работает от 4,2 апи версии.

В вашем стиле ActionBar добавить это ...

<item name="android:displayOptions">showHome|useLogo</item> 
<item name="displayOptions">showHome|useLogo</item> 

<!-- Support library compatibility --> 
<item name="android:logo">@drawable/ic_home</item> 
<item name="logo">@drawable/ic_home</item> 

полный пример, добавив новую тему для вашего полного приложения.

<!-- This is the generated app theme --> 
<style name="AppTheme" parent="@style/Theme.AppCompat.Light"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 

    <!-- Support library compatibility --> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<!-- general styles for the action bar --> 
<style name="MyActionBar" 
    parent="@style/Widget.AppCompat.ActionBar"> 

    <item name="android:displayOptions">showHome|useLogo</item> 
    <!-- Support library compatibility --> 
    <item name="displayOptions">showHome|useLogo</item> 

    <item name="android:logo">@drawable/ic_home</item> 
    <!-- Support library compatibility --> 
    <item name="logo">@drawable/ic_home</item> 
</style> 

 Смежные вопросы

  • Нет связанных вопросов^_^