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

創(chuàng)新互聯(lián)公司專注于永定企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站制作。永定網(wǎng)站建設(shè)公司,為永定等地區(qū)提供建站服務(wù)。全流程定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
問題概況:橫板cocos2dx游戲,點(diǎn)擊輸入框彈出鍵盤時(shí),界面要求跟隨網(wǎng)上平易,不能擋住輸入框。這種問題只出現(xiàn)在非全屏鍵盤到情況下。
方案1:mainActivity重寫onconfigurationChanged,監(jiān)聽屏幕方向旋轉(zhuǎn),添加Android:configChanges="orientation|keyboard"。
缺點(diǎn)全屏下無效,如果設(shè)置為非全屏,<activityandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen" />,去掉Fullscreen
這樣會(huì)顯示系統(tǒng)狀態(tài)欄。否掉!
方案2:彈出鍵盤時(shí)勢(shì)必引起layout布局的變化,監(jiān)聽布局的變化然后計(jì)算偏移,即可算出是否時(shí)顯示或隱藏鍵盤。
//獲取rootview mRoot =this.getWindow().getDecorView();
全局鍵盤顯示和隱藏不會(huì)觸發(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();
}
}
});
以上!另外對(duì)APP進(jìn)行在線全方位的安全性、兼容性測(cè)試,我都會(huì)用這個(gè):www.ineice.com。
名稱欄目:Android監(jiān)聽鍵盤顯示和隱藏
瀏覽地址:http://www.chinadenli.net/article44/geipee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、、網(wǎng)站建設(shè)、外貿(mào)建站、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)