我有一個應用程序使用導航抽屜提供位置列表。在抽屜中,有幾個選項(如選擇國家,城市等),用戶可以在主要活動中顯示相應列表之前設置。安卓在抽屜裏關閉監聽器
用戶關閉抽屜時是否有任何可能刷新列表,或者有其他解決方法?我試圖尋找教程,但沒有發現關於這個抽屜的關閉監聽器。 任何建議將有幫助,謝謝!
我有一個應用程序使用導航抽屜提供位置列表。在抽屜中,有幾個選項(如選擇國家,城市等),用戶可以在主要活動中顯示相應列表之前設置。安卓在抽屜裏關閉監聽器
用戶關閉抽屜時是否有任何可能刷新列表,或者有其他解決方法?我試圖尋找教程,但沒有發現關於這個抽屜的關閉監聽器。 任何建議將有幫助,謝謝!
當您設定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代替。
如果您使用ActionBar,reVerse答案也是正確的。如果你只是直接使用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's comment,addDrawerListener()
應該現在setDrawerListener()
已棄用使用。
如果有人看到這個,不推薦使用'setDrawerListener'。現在應該使用'addDrawerListener' – kit 2016-05-08 19:41:50
OMG,我完全忘了這個!感謝提醒! – rendyhihi 2014-09-28 07:35:16