要在Android中實現頂層的窗口彈出,一般都會用WindowsManager來實現,但是幾乎所有的網站資源都是說彈出的懸浮窗不用接受任何按鍵響應。
而問題就是,我們有時候需要他響應按鍵,比如電視上的android,我們要它響應遙控器上的音量按鍵等等之類的。這時就必須要對添加的View進行LayoutParams的相關設置了。
主要的代碼就兩個地方。
第一,添加的view不可以設置layoutParams.flags=LayoutParams.FLAG_NOT_FOCUSABLE;//否則就完全屏蔽了按鍵了
第二,需要設置view.setFocusableInTouchMode(true);
這兩個設置后,為添加的VIew設置的按鍵監聽才可以接收到按鍵信息,怎么處理就是看需求了。
view.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { Log.e("wytings","onKeyListener"); return false; } });