6

我有偏好屏幕扩展PreferenceActivity。针对 OS 4.0.3,我想<在操作栏上添加图标,所以我在onCreate().

ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);

有效。<已添加到应用程序图标的左侧。但是当我点击进入下一个级别的项目(更多详细信息屏幕)时,<将不会显示。回到顶层,<再次出现。

PreferenceActivity自从 smart the隐藏它以来,我从未想过嵌套偏好的机制。现在我的问题是,为什么不PreferenceActivity显示<嵌套首选项?

我不想争辩说我不需要添加<到偏好屏幕。(即使是谷歌的一些应用程序,也有一些没有,所以我认为这没有可靠的规则。)

如果有一个简单的解决方案,我想解决这个问题。

4

3 回答 3

1

您应该通过编写自定义 ActionBar 样式来添加箭头,而不是动态添加它,以与您的应用程序主题一起使用。(基本上,见https://stackoverflow.com/a/16247111/582004

于 2013-04-27T00:45:24.253 回答
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>
于 2016-09-19T10:36:54.797 回答
0

您需要为希望显示向上导航的每个 Activity 启用主页按钮和操作栏。您还必须在清单中设置父活动。

有关血腥细节,请参阅此问题: 向上指示器不显示

于 2012-12-20T08:29:43.387 回答