[英]back press on fragment finishing activity
我有一個帶有片段的活動,它也可以導航。 當你回擊片段時,它應該返回到活動。 但是,當你在應用程序關閉時回擊。
現在這不是完全不受歡迎的行為,因為當你回擊主要活動時,我希望應用關閉。
執行此操作的主要活動代碼:
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
this.finishAffinity();
}
}
片段上沒有onBackPressed方法
我怎樣才能這樣做,以便當你回擊片段時主要活動顯示但當你回擊活動時應用程序關閉
使用這樣的東西
適用於API等級5及更高版本
@Override
public void onBackPressed() {
super.onBackPressed()
if (keycode == KeyEvent.KEYCODE_BACK) {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
finish();
}
}
比API 5更早
public boolean onKeyDown(int keycode, KeyEvent event) {
if (keycode == KeyEvent.KEYCODE_BACK) {
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
finish();
}
}
return super.onKeyDown(keycode, event);
}
請讓我知道這對你有沒有用
刪除this.finishAffinity();
來自onBackPressed()
示例代碼
@Override
public void onBackPressed() {
DrawerLayout drawer = findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
finish();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.