Android監(jiān)聽鍵盤顯示和隱藏

問題概況:橫板cocos2dx游戲,點(diǎn)擊輸入框彈出鍵盤時,界面要求跟隨網(wǎng)上平易,不能擋住輸入框。這種問題只出現(xiàn)在非全屏鍵盤到情況下。

方案1:mainActivity重寫onconfigurationChanged,監(jiān)聽屏幕方向旋轉(zhuǎn),添加Android:configChanges="orientation|keyboard"。

缺點(diǎn)全屏下無效,如果設(shè)置為非全屏,

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />,去掉Fullscreen

這樣會顯示系統(tǒng)狀態(tài)欄。否掉!

方案2:彈出鍵盤時勢必引起layout布局的變化,監(jiān)聽布局的變化然后計算偏移,即可算出是否時顯示或隱藏鍵盤。

//獲取rootview

mRoot =

this.getWindow().getDecorView();

全局鍵盤顯示和隱藏不會觸發(fā)

//添加布局變化監(jiān)聽

root.getViewTreeObserver().addOnGlobalLayoutListener(

new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

Rect rect = new Rect();

root.getWindowVisibleDisplayFrame(rect);

int rootInvisibleHeight =root.getRootView().getHeight() - rect.bottom;

if (rootInvisibleHeight<= 100) {

//通知c++做想做的事

hideKeyBoardHandler();

} else {

showKeyBoardHandler();

}

}

});

以上!另外對APP進(jìn)行在線全方位的安全性、兼容性測試,我都會用這個:www.ineice.com。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評論 25 709
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,307評論 0 17
  • 內(nèi)容抽屜菜單ListViewWebViewSwitchButton按鈕點(diǎn)贊按鈕進(jìn)度條TabLayout圖標(biāo)下拉刷新...
    皇小弟閱讀 47,136評論 22 665
  • 上周四就是九月二十一號,到今天二十三號,已經(jīng)三天了,發(fā)信息沒見回音,我感覺好似有三個世紀(jì)那么漫長,我知道你不會有事...
  • 面朝大海春暖花開 良言是最珍貴的禮物 鐵飯碗不是在一個地方有飯吃,而是去到任何地方都有飯吃 會演講會說故事很重要 ...
    選妃閱讀 336評論 0 1

友情鏈接更多精彩內(nèi)容