我有首选屏幕PreferenceActivity
。为了定位OS 4.0.3,我想在操作栏上添加<
图标,因此我在onCreate()
中执行此操作。
ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
有效。应用程序图标左侧添加了<
。但是当我点击进入下一级别的项目(更详细的屏幕)时,<
将不会显示。返回顶层,<
再次出现。
我从未想过嵌套偏好的机制,因为聪明的PreferenceActivity
隐藏了它。现在我的问题是,为什么PreferenceActivity
不会在嵌套首选项上显示<
?
我不想说我不需要将<
添加到首选项屏幕。 (甚至谷歌的一些应用程序都会添加,有些则没有,所以我认为没有可靠的规则。)
如果有一个简单的解决方案,我想解决这个问题。
答案 0 :(得分:1)
您应该通过编写要与应用程序主题一起使用的自定义ActionBar样式来添加箭头,而不是动态添加它。 (基本上,请参阅https://stackoverflow.com/a/16247111/582004)
答案 1 :(得分:1)
这是我在设置活动
上的主页按钮的工作代码 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout root = (LinearLayout)findViewById(android.R.id.list).getParent().getParent().getParent();
Toolbar bar = (Toolbar) LayoutInflater.from(this).inflate(R.layout.settings_toolbar, root, false);
root.addView(bar, 0); // insert at top
bar.setTitle("Settings");
bar.setTitleTextColor(Color.WHITE);
bar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
addPreferencesFromResource(R.layout.settings);
}
这是settings_toolbar.xml
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@color/colorPrimary"
android:elevation="2dp"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
app:navigationIcon="@drawable/gobackleftarrow"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
</android.support.v7.widget.Toolbar>
答案 2 :(得分:0)
您需要为要显示向上导航的每个活动启用主页按钮和操作栏。您还必须在清单中设置父活动。
有关血腥的详细信息,请参阅此问题: Up indicator does not show up