我想在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模拟器(2.3)上,它运作完美。
在Android模拟器(4.1.2)上,它非常完美。
在Android模拟器(4.0)上看起来很好,但是当我点击主页/向上按钮时,没有任何反应并且logcat显示:清单中的bad ParentActivityName'HomeActivity'在我的手机上(4.0.3),只显示左侧插入符号,但导航工作正常。
在Android模拟器(4.3)上,它工作正常,但可聚焦区域成为应用程序图标+应用程序标题。 (那是当我按下这个长区域内的任何地方时,会突出显示并触发导航事件)我现在完全迷失了......猜猜它可能是某些Android版本中的一些错误。
答案 0 :(得分:2)
在actionBar.setDisplayHomeAsUpEnabled(true)下添加以下行;
它对我有用
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setIcon(R.drawable.ic_launcher);
答案 1 :(得分:1)
我认为在android 5和API 21中我们无法使用app图标进行操作 如果您的appcompat支持库是v7 rev21,我认为您至少不能使用应用程序图标来执行操作。但你可以使用它而不是左上角的插入符号,或者你可以使用该插入符号的右侧的应用程序图标,但如果你点击它没有任何事情发生。
我有两个应用程序完全像我在其中一个培训中使用较旧的appcompat v7和minSdkVersion =“11”并且我从未添加getSupportActionBar().setDisplayHomeAsUpEnabled(true);
它但应用程序有应用程序图标,没有问题。但在另一个应用程序我几天前更新我的支持库到rev21,当然这个应用程序的minSdkVersion是“8”但这个应用程序没有actionBar图标为Up动作,如果你添加顶级代码,你什么都不做。
我搜索了很多网站,据我所知,在材料设计方面谷歌删除了应用程序图标,因为行动栏上的空间增加等等。
您可以看到此行
“当使用Material主题(默认情况下为API 21或更新版本)时,导航按钮(以前称为”Home“)将占用应用程序图标以前占用的空间。希望表达更强大品牌的应用程序应在操作栏和其他应用程序中大量使用其品牌颜色或使用替代标准标题文本。“在本页http://developer.android.com/reference/android/support/v7/app/ActionBar.html
我认为。
感谢。
答案 2 :(得分:0)
我已经在NavigationDrawerFragment
的setUp中添加了 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
HTH
答案 3 :(得分:-2)
多奇怪,你可以使用这个
getActionBar().setDisplayUseLogoEnabled(useLogo)
其中useLogo为true或false,您甚至可以使用另一个drawable作为带有此
的操作栏图标getActionBar().setLogo(logo)
徽标是一个可绘制的