ActionBar tittle toggle в DrawerLayout не работает [дубликат]

Выполните следующие действия:

grep -rnw '/path/to/somewhere/' -e 'pattern'
  • -r или -R рекурсивно,
  • -n - номер строки, а
  • -w означает совпадение всего слова.
  • -l (нижний регистр L) можно добавить, чтобы просто указать имя файла совпадающих файлов.

Наряду с этим, --exclude, --include, --exclude-dir могут использоваться для эффективного поиска:

  • Это будет поиск только тех файлов, которые имеют .c или .h расширения:
    grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
    
  • исключает поиск всех файлов, заканчивающихся расширением .o:
    grep --exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
    
  • Для каталогов можно исключить конкретный каталог (ы) через параметр --exclude-dir. Например, это исключает dirs dir1 /, dir2 / и все из них, соответствующие * .dst /:
    grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
    

. Это очень хорошо работает для меня, для достижения почти той же цели как ваш.

Для получения дополнительных опций проверьте man grep.

26
задан rendyhihi 28 September 2014 в 08:00
поделиться

2 ответа

Когда вы настраиваете 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.

66
ответ дан Bartando 22 August 2018 в 17:45
поделиться
  • 1
    OMG, я совсем забыл об этом! Спасибо за напоминание! – rendyhihi 28 September 2014 в 08:35
Ответ

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) {

            }
        });
}

В соответствии с комментарием kit , addDrawerListener() следует использовать теперь, что setDrawerListener() устарел.

34
ответ дан Community 22 August 2018 в 17:45
поделиться
  • 1
    Если кто-либо видит это, setDrawerListener устарел. addDrawerListener следует использовать сейчас – kit 8 May 2016 в 19:41
Другие вопросы по тегам:

Похожие вопросы: