如何在第一个应用程序启动时打开导航抽屉?

时间:2013-08-27 21:02:03

标签: android design-patterns navigation-drawer drawerlayout

根据Google指南,建议您仅在安装并打开应用后首次打开DrawerLayout(以向用户显示该功能)。

你会怎么做呢?

似乎它是openDrawer()方法与某种偏好的组合。

1 个答案:

答案 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();
}