2015-01-13 3 views
0

Значок моей пусковой установки не отображается в моем ActionBar, несмотря на наличие набора атрибутов android:icon (и панель запуска появляется на моем рабочем столе при установке приложения). Примечание. Я использую фрагменты, и они также вносят элементы действия - но это не должно влиять на домашний набор значков, правильно?Значок Launcher, не отображающийся в панели действий

Вот некоторые соответствующий код из моих манифеста:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns="http://schemas.android.com/apk/res/android" 
    package="com.mywebsite.myapp"> 

    <application 
     android:name=".MyApp" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 

     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name"> 

     ...etc... 

     </activity> 
    </application> 
</manifest> 

И код из styles.xml:

<resources> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
    </style> 
</resources> 

Код от menu_main.xml, для хорошего мер:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".MainActivity"> 

    <!-- Note: my fragments also contribute action items. --> 

    <item 
     android:id="@+id/action_about" 
     android:orderInCategory="100" 
     android:title="@string/menu_item_about" 
     app:showAsAction="never" /> 
</menu> 

И некоторый код из MainActivity.java:

package com.mywebsite.myapp; 

import android.support.v7.app.ActionBarActivity; 
...etc... 

public class MainActivity extends ActionBarActivity { 

...lots of code; let me know if you need anything... 

    // possibly relevant 
    @Override public boolean onCreateOptionsMenu(Menu menu) { 
     getMeunInflater().inflate(R.menu.menu_main, menu); 
    } 
} 

EDIT: Этот вопрос не является дубликатом вопроса, связанного с модераторами. Ответ на этот вопрос не помог решить мою проблему; однако ответ, который я обозначил как правильное, сделал. Чтобы быть конкретным, вызов setLogo(int) не был решением моей проблемы. Вызов actionBar.setDisplayShowHomeEnabled(true);, однако сделал решить мою проблему. Видеть? Различные вопросы.

+0

Какой уровень API? Использование 'AppCompat'? Использование панели инструментов? – shkschneider

+0

Я хотел бы видеть ваш 'onCreate()', если он что-то делает для отображения или отображения. – shkschneider

ответ

6

Убедитесь, что вы показываете его:

actionBar.setDisplayShowHomeEnabled(true); 

Затем, обратите внимание, что setIcon() и setLogo() будет работать только если вы установили displayOptions соответственно. Вы можете просто использовать:

actionBar.setDisplayOptions(ActionBar.DISPLAY_USE_LOGO); 

Так что ваш ActionBar примет значок вашего AndroidManifest.xml «ы. Или:

actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); 
actionBar.setIcon(R.drawable.ic_launcher); 
0

Попробуйте это: getActivity().getActionBar().setDisplayShowHomeEnabled(true); в осколком onCreate

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