Android ActionBar не показывает значок приложения после setDisplayHomeAsUpEnabled (true)

Я хочу включить функцию навигации в ActionBar и следовать этому документу по адресу: http://developer.android.com/guide/topics/ui/actionbar.html.

Но когда я проверяю свое приложение (на Android 4.0), значок приложения не отображается, вместо этого отображается только левая строка.

Я проверил файл манифеста android, файл java и файл макета, но до сих пор не знаю, как заставить его работать.

Вот AndroidManifest.xml:

... <activity android:name="com.test.HelpActivity" android:label="@string/help" android:parentActivityName="com.test.HomeActivity" android:theme="@style/Theme.AppCompat.Light.DarkActionBar" android:screenOrientation="portrait" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.test.HomeActivity" /> </activity> ... 

И вот код Java:

 ... import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBarActivity; public class HelpActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_help); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } 

}

Спасибо за помощь!

===== ===== UPDATE

Я сделал еще несколько тестов, и вот что я получил:

На Android Emulator (2.3), он отлично работает.

На Android эмулятор (4.1.2), он работает отлично.

На Android-эмуляторе (4.0), кажется, все прекрасно, но когда я нажимаю кнопку «домой / вверх», ничего не происходит и отображается лог-код: bad parentActivityName «HomeActivity» в манифесте

На моем телефоне (4.0.3) отображается только левая каретка, но навигация работает нормально.

На Android Emulator (4.3), он отлично работает, но фокусируемая область становится значком приложения + название приложения. (То есть, когда я нажимаю в любом месте этой длинной области, он подсвечивается и запускается событие навигации)

Я теперь полностью потерян … Полагаю, это может быть какая-то ошибка в некоторых версиях Android.

Добавьте эту строку ниже actionBar.setDisplayHomeAsUpEnabled (true);
меня устраивает

  actionBar.setDisplayShowHomeEnabled(true); actionBar.setIcon(R.drawable.ic_launcher); 

Я думаю, что в android 5 и API 21 мы не можем использовать значок приложения для действия.
Если ваша библиотека поддержки appcompat v7 rev21, я думаю, вы не можете использовать значок приложения, по крайней мере, для действия. Но вы можете использовать его вместо верхнего левого каретки, или вы можете использовать значок приложения справа от этой каретки, хотя если и щелкнуть по нему, ничего не произойдет.

У меня есть два приложения, полностью подобные этим тренировкам, в одном из них я использую старый appcompat v7 и minSdkVersion = «11», и я никогда не добавлял getSupportActionBar().setDisplayHomeAsUpEnabled(true);
К нему, но приложение имеет значок приложения и никаких проблем. Но в другом приложении я обновляю свою библиотеку поддержки несколько дней назад до rev21, и, конечно, minSdkVersion этого приложения – это «8», но это приложение не имеет значка actionBar для действия Up, и если вы добавляете в него верхний код, вы ничего не делаете. Я ищу многие сайты, и я понимаю, что в материальном дизайне google удалил значок приложения для действия из-за увеличения пространства на панели действий и т. Д. Вы можете увидеть эту строку
«При использовании тем Материала (по умолчанию в API 21 или новее) кнопка навигации (ранее« Домой ») занимает пространство, ранее занимаемое значком приложения. Приложения, желающие выразить более сильный брендинг, должны сильно использовать свои цвета бренда в действии Бар и другое приложение хром или использовать вместо стандартного текста заголовка ».
На этой странице http://developer.android.com/reference/android/support/v7/app/ActionBar.html
Я думаю. Благодарю.

Следующее введите описание ссылки здесь

Я добавил в setUp файла NavigationDrawerFragment

  Toolbar toolbar = (Toolbar) ((Activity)mCallbacks).findViewById(R.id.action_bar); if(toolbar!=null){ toolbar.setLogo(R.drawable.ic_launcher); } 

Также нет необходимости в

  actionBar.setDisplayHomeAsUpEnabled(true); actionBar.setHomeButtonEnabled(true); 

Я использую последнюю библиотеку поддержки 21.0.3

НТН

Thats weird, хорошо вы можете использовать это

 getActionBar().setDisplayUseLogoEnabled(useLogo) 

Где useLogo – это истина или ложь, вы можете использовать еще один ярлык как значок панели действий с этим

 getActionBar().setLogo(logo) 

Где логотип его можно использовать