当前位置: 首页 > 知识库问答 >
问题:

工具栏导航图标从未设置

范鸿
2023-03-14

我正在尝试新的工具栏组件,但导航图标出现了一些问题。我想实现一个用于反向导航的自定义图标:

在我的清单中,我为我的活动设置了一个父级:

<activity android:name=".CardsActivity" android:parentActivityName=".MainActivity">
    <!-- Parent activity meta-data to support API level 7+ -->
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity" />
</activity>

我这样声明工具栏:

<RelativeLayout 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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.example.lollitest.MainActivity" >
    
    <android.support.v7.widget.Toolbar
        android:id="@+id/my_awesome_toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="?attr/actionBarSize"
        android:layout_marginBottom="10dp"
        android:background="?attr/colorPrimary" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/my_awesome_toolbar"
        android:text="@string/hello_world" />

</RelativeLayout>

然后在“活动”中,我将工具栏配置为:

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);

后退图标不是我用setNavigationIcon()设置的!无论我给这个方法的绘图是什么,导航图标总是后面的箭头。

我试图删除清单中的父关联,但唯一的效果是(显然)阻止按钮返回。

相反,如果我想要默认的后退箭头图标,并且不调用setNavigationIcon(),那么我根本没有任何图标。

如何正确处理工具栏中的导航图标(自定义和默认)?

注意:我正在Android 4.4上运行测试

共有3个答案

邓才
2023-03-14

(用户802421的答案)

private void setToolbar() {
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if (toolbar != null) {
        setSupportActionBar(toolbar);
        toolbar.setNavigationIcon(R.drawable.ic_action_back);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    }
}

toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/toolbar_height"
    android:background="?attr/colorPrimaryDark" />
阎唯
2023-03-14

具体到导航图标,这是正确的顺序

// get the actionbar as Toolbar and set it up
Toolbar toolbar = (Toolbar) findViewById(R.id.signIn_toolbar);
setSupportActionBar(toolbar);

通知工具栏以提供向后导航。这会将图标设置为默认材质图标

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

稍后用自定义图标覆盖该图标,在我的示例中是Holo back图标

toolbar.setNavigationIcon(R.drawable.ic_chevron_left_white_36dp);
邹宏峻
2023-03-14

目前可以使用,更改顺序:(好像是bug)

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);

toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
 类似资料:
  • 你知道我如何在Android/支持库中找到原来的汉堡包图标吗?(或如何显示) 在我的活动中 布局文件 styles.xml

  • 在向应用添加导航栏和工具栏之前,我们需要决定使用哪种布局。 Framework7在这方面很自由,有3种不同类型的导航栏/工具栏布局,它们对应着在页面/视图中的不同位置。 静态布局 静态布局可能是最少使用的布局。在这种情况下,导航栏和工具栏只是可以滚动的页面内容的一部分,每个页面都有它自己的导航栏和工具栏: <body> ... <div class="views"> <div cl

  • 我有一个使用动作条和导航抽屉的有很多碎片的活动。它已启用“home as up”。我已经实现了正确的逻辑,只有顶层的片段显示动作条抽屉切换图标,其他的片段显示箭头。我通过以下方式实现了这一点: 现在旧的v4支持库ActionBarDrawerToggle被弃用。我已经切换到v7版本和新的以获得材质设计外观。之后,当抽屉打开时,“向上”箭头正确显示,但当执行上述代码时,它完全消失。 是支持库中的一个

  • 本功能是响应大家需求,后期加上的,其实本人在公司项目或者个人项目中是不太使用该功能的。以前那些传统后台框架往往会包含此功能,由于以前的后台项目大部分都是多页面的形式,所以标签栏导航功能还是具有一定意义的,大部分都是基于 iframe 的方式实现的。 但随着时代的发展,现在的后台项目几乎都是 spa(single page web application 单页面开发),再使用以前的方案来实现标签导航

  • 导航栏设置 功能介绍:设置手机端导航栏,突出自己想展示的商品。 步骤 从【店铺设置】→【导航栏设置】→【新建导航】。 设置导航标题、点击导航图标的跳转方式、排序以及图标的样式和颜色。

  • 我想将搜索图标的颜色设置为纯白色。此刻,搜索图标的颜色是灰色的,并且与“演示搜索”的白色文本明显不同。 编辑: 根据一些建议,我使用纯白色创建了一个新图标(确切地说,rgb=255,255,255)并使用它来代替Android:ic_menu_search。Android会用灰色调着色(通过截图上的颜色选择工具验证),即使原来的图标是纯白色的。