ActionBarDrawerToggle没有显示正确的图标

时间:2015-05-16 19:41:35

标签: android

我正在关注http://developer.android.com/training/implementing-navigation/nav-drawer.html上的教程,并且遇到ActionBarDrawerToggle问题。该文档使用v4,但由于不推荐使用v7,我试图使用v7。

我的问题是我无法显示抽屉/汉堡图标,但它总是显示向上箭头,即使我在清单中没有父母的主要活动上也是如此。

这是我的主要活动:

import android.support.v7.app.ActionBarDrawerToggle;

当我改变时它起作用:

import android.support.v4.app.ActionBarDrawerToggle;

    drawerToggle = new ActionBarDrawerToggle(
        this,
        drawerLayout,
        R.string.drawer_open,
        R.string.drawer_close
    )

当我改变时:

        drawerToggle = new ActionBarDrawerToggle(
            this,
            drawerLayout,
            R.drawable.ic_drawer, 
            R.string.drawer_open,
            R.string.drawer_close
        )

use std::sync::Arc;

struct S {
    i: i32,
}

fn thr(s: &S) {}

fn main() {
    let s1 = Arc::new(S { i: 1 });
    thr(&s1);

    let s2 = s1.clone();
    let t2 = std::thread::spawn(move || thr(&s2));

    let s3 = s1.clone();
    let t3 = std::thread::spawn(move || thr(&s3));

    t2.join();
    t3.join();
}

在这些变化之后,我可以看到正确的汉堡包图标在打开/关闭抽屉时折叠/展开,但我想让v7工作。有什么想法吗?

编辑:只是在我的手机上试了一下(运行Android 5.0.1),当抽屉关闭时会显示汉堡图标,打开时会显示箭头。我使用的模拟器是API 15 / Android 4.0.3

1 个答案:

答案 0 :(得分:0)

因为ActionBarDrawerToggle有两个不同的签名,但构造函数名称相同,并且您使用了带有4个参数的构造函数

 drawerToggle = new ActionBarDrawerToggle(
        this,
        drawerLayout,
        R.string.drawer_open,
        R.string.drawer_close
    )

要解决该问题,您可以使用接受工具栏的构造函数方法

drawerToggle = new ActionBarDrawerToggle(
            this,yourtoolbar
            drawerLayout,
            R.string.drawer_open,
            R.string.drawer_close
        )