編輯:關於Android編程
做點名app的時候,由於教師端和學生端UI相似,所以用了一套UI框架,結果修改一番之後,
點擊菜單鍵無反應,也就是下面的onCreateOptionsMenu不執行了,
@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; }
而通過actionbar的點擊卻還是可以喚出菜單列表
百思不得其解,最後發現下面這段代碼,
// 監聽返回鍵,退出程序 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { wifiHotManager.closeAWifiHot(); this.finish(); return true;//① } return true;//② }
這段代碼本來是作為退出的,當按倒back鍵的時候退出應用,但是裡面有一個不起眼的地方,把菜單鍵給屏蔽了,
也就是②處,在①出的return的作用是把菜單鍵的點擊事件消費掉,阻止它向上傳遞,
而在②處的return true則把除了back按鍵之外的菜單鍵事件也給消費掉了,這樣菜單鍵也就無效了,
越來越體會到android中很多return的妙用,可以用來消費掉你不想讓系統知道的消息。
如果你也遇到這樣的問題,看看有沒有類似的問題。good luck。
作者:jason0539
微博:http://weibo.com/2553717707
博客:http://blog.csdn.net/jason0539(轉載請說明出處)
自Android 5.0之後,谷歌公司推出了RecylerView控件,RecylerView,我想看到一個新名詞後大部分人會首先發出一個疑問,recylerview是什
SwipeBackLayout其實github上已經有這個開源庫了,我是個菜鳥,我喜歡用開源庫,同時也非常好奇它的實現原理。很多大神寫的代碼注釋都特別少,可能是他們覺得很
LinearLayout 線性布局,該布局的繼承關系: 1. 什麼是線性布局 通俗的說感覺起來和線有關,參照線的特點,有麼是橫向的,要麼是豎向的。 Linear
AppBarLayout分組在這裡說過AppBarLayout可以分為可滑出和不可滑出上下2部分,其實細致一點可以分三部分,如下圖所示,下滑最後出現(part 1),下滑