如何在actionbarsherlock中使应用程序图标成为up enabled(不是仅限于标题图标),就像Whats App一样。
如何在actionbarsherlock中使应用程序图标成为up enabled(不是仅限于标题图标),就像Whats App一样。
自 Android 4.2.2 版本起,标题和图标可以同时点击。WhatsApp 使用自定义视图来显示两行标题,这会导致无法单独点击标题。您可以采用相同的方式:
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(R.layout.ab_title);
TextView title = (TextView) findViewById(android.R.id.text1);
title.setText("Title");
/res/layout/ab_title.xml:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
style="@style/TextAppearance.Sherlock.Widget.ActionBar.Title"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:ellipsize="end"
android:gravity="center_vertical" />
onCreate
方法中添加以下内容:getSupportActionBar().setDisplayHomeAsUpEnabled(true);
在您的活动中定义以下覆盖方法:
@Override
public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
onBackPressed()
是错误的!Home 按钮和返回按钮不同。使用 NavUtils.navigateUpFromSameTask(this)
代替。 - Eugen Pechanec我认为这是 Android 版本/构建的“特性”,因为我有两个设备(Nexus S 和 Nexus 7)(Android 4.1.2 和 Android 4.2.2),我正在这两个设备上部署我正在开发的应用程序,使用完全相同的代码,在 Nexus S 上图标是“向上”的,而在 Nexus 7 上图标和标题都是“向上”的。
请确保您的android:minSdkVersion="11",这可以在清单文件中看到,APK 11已经包含了Up图标。将以下内容添加到您的onCreate方法中:对于主页,请使用getActionBar().setDisplayHomeAsUpEnabled(false); 确保它为false,在其他活动中保持启用,即“true”。我制作了一个小样本,请尝试下面的链接,它可能会帮助您将其导入到您的工作空间中