Подтвердить что ты не робот

Android на закрытом приемнике ящика

У меня есть приложение, использующее навигационный ящик, который предоставляет список местоположений. В ящике есть несколько вариантов (например, выбор страны, города и т.д.), Которые пользователь может настроить, прежде чем показывать соответствующий список в основном действии.

Есть ли возможность обновить список, когда пользователь закрывает ящик, или, может быть, есть другой способ решить эту проблему? Я попытался найти учебники, но ничего не нашел об этом ящике закрытого слушателя. Любые предложения были бы полезны, спасибо!

4b9b3361

Ответ 1

При настройке ActionBarDrawerToggle вы можете "реализовать" обратные вызовы onDrawerClosed и onDrawerOpened. См. Следующий пример в Docs:

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {

        /** Called when a drawer has settled in a completely closed state. */
        public void onDrawerClosed(View view) {
            super.onDrawerClosed(view);
            // Do whatever you want here
        }

        /** Called when a drawer has settled in a completely open state. */
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            // Do whatever you want here
        }
    };
// Set the drawer toggle as the DrawerListener
mDrawerLayout.addDrawerListener(mDrawerToggle);

Изменить: теперь setDrawerListener устарел, вместо этого используйте addDrawerListener.

Ответ 2

Ответ на

reVerse правильный, если вы используете ActionBar. если вы просто используете DrawerLayout напрямую, вы можете добавить к нему DrawerListener:

View drawerView = findViewById(R.id.drawer_layout);
if (drawerView != null && drawerView instanceof DrawerLayout) {
    mDrawer = (DrawerLayout)drawerView;
    mDrawer.setDrawerListener(new DrawerListener() {
            @Override
            public void onDrawerSlide(View view, float v) {

            }

            @Override
            public void onDrawerOpened(View view) {

            }

            @Override
            public void onDrawerClosed(View view) {
                // your refresh code can be called from here
            }

            @Override
            public void onDrawerStateChanged(int i) {

            }
        });
}

По комментарий к комьюниту, addDrawerListener() следует использовать теперь, когда setDrawerListener() устарел.