我正在关注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
答案 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
)