Выполните следующие действия:
grep -rnw '/path/to/somewhere/' -e 'pattern'
-r
или -R
рекурсивно, -n
- номер строки, а -w
означает совпадение всего слова. -l
(нижний регистр L) можно добавить, чтобы просто указать имя файла совпадающих файлов. Наряду с этим, --exclude
, --include
, --exclude-dir
могут использоваться для эффективного поиска:
grep --include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
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
.
Когда вы настраиваете 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.
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()
устарел.
setDrawerListener
устарел. addDrawerListener
следует использовать сейчас
– kit
8 May 2016 в 19:41