根据Google指南,建议您仅在安装并打开应用后首次打开DrawerLayout
(以向用户显示该功能)。
你会怎么做呢?
似乎它是openDrawer()
方法与某种偏好的组合。
答案 0 :(得分:10)
我建议你使用 SharedPreferences :
基本思路是你读取SharedPreferences并查找第一个应用程序启动时不存在的布尔值。 默认情况下,如果您要查找的值,则返回“true” 无法找到,表明它实际上是第一个应用程序启动。然后,在您的第一个应用程序启动后,您将存储该值 您的SharedPreferences中的“false”,以及下次启动时的值 将从SharedPreferences中读取“false”,表明它是 不再是第一个应用程序启动。
以下是它的外观示例:
@Override
protected void onCreate(Bundle savedInstanceState) {
// your other code...
// setContentView(...) initialize drawer and stuff like that...
// use thread for performance
Thread t = new Thread(new Runnable() {
@Override
public void run() {
SharedPreferences sp = Context.getSharedPreferences("yoursharedprefs", 0);
boolean isFirstStart = sp.getBoolean("key", true);
// we will not get a value at first start, so true will be returned
// if it was the first app start
if(isFirstStart) {
mDrawerLayout.openDrawer(mDrawerList);
Editor e = sp.edit();
// we save the value "false", indicating that it is no longer the first appstart
e.putBoolean("key", false);
e.commit();
}
}
});
t.start();
}