设置setDisplayHomeAsUpEnabled显示箭头而不是向左的小三角形

3

我希望在我的活动中显示一个“向上”按钮,这个功能已经正常工作了,但是我无法让左侧的尖号箭头显示出来。它只会显示一个丑陋的返回箭头。我正在我的活动中进行以下操作:

public class SecondActivity extends ActionBarActivity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(mToolbar);
    setTitle(getString(R.string.second));
    mToolbar.setTitleTextColor(getResources().getColor(android.R.color.white));

    ....
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    ....

   }
}

但是我只看到这个 -

返回箭头

这是布局XML -

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="org.step.main.SecondActivity">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/listsecond"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="?attr/actionBarSize"
        android:clipToPadding="false"
        tools:context=".SecondActivity"
        />

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"/>

</FrameLayout>

有什么建议吗?另外,有没有办法将返回按钮的颜色改为白色?
注意:我正在使用主题 - Theme.AppCompat.Light.NoActionBar

你可以展示一下你的 toolbar 的 XML 吗? - Daniel Nugent
已添加布局XML文件。 - Sam
看一下这个,可能会有所帮助:https://dev59.com/_mox5IYBdhLWcg3wWzJ7 - Daniel Nugent
没有一个对我起作用。 - Sam
1
啊哈,我终于想通了。你只需要调用 getSupportActionBar().setHomeAsUpIndicator ( R.drawable.your_custom_image); 就可以了。当我测试时,我成功地显示了 ic_launcher。看看这个:https://dev59.com/Q18d5IYBdhLWcg3weyI0 - Daniel Nugent
有没有可用于显示左箭头的可绘制图像? - Sam
1个回答

11

根据这个答案,您可以将任何图标显示为白色。

至于左箭头图标,请参考这个答案,其中描述了您需要下载的Action Bar图标包中的位置。

编辑:您想要的图标位于Action Bar Icons/holo_dark/02_navigation_previous_item/

要显示白色的左箭头,您可以这样做:

    mToolbar.setTitleTextColor(getResources().getColor(android.R.color.white));
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //Add the following code to make the up arrow white:
    final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
    upArrow.setColorFilter(getResources().getColor(android.R.color.white), PorterDuff.Mode.SRC_ATOP);
    getSupportActionBar().setHomeAsUpIndicator(upArrow);

请注意,您需要添加以下导入:

import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;

这适用于将颜色更改为白色。但我主要问题是显示左插入符号。是否有预先指定的可绘制对象,或者我需要创建自己的对象? - Sam
@Sam 我刚刚更新了答案,请下载操作栏图标包,链接的答案会解释在哪里找到它们。http://developer.android.com/design/downloads/index.html - Daniel Nugent
我从操作包中下载并添加了来自holo_dark主题的ic_action_previous_item,这是白色图像。谢谢。 - Sam
@Sam 我也看到了。更新了答案,以防将来有其他人需要帮助! - Daniel Nugent

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接