Android設(shè)置控件一直保持在軟鍵盤上方

沒圖說個X曲聂,先上效果圖


再來個布局圖


紅框部分即我們需要保持在軟鍵盤上方的部分着绊,藍框部分是父布局

1.聲明?LayoutChangeListener

ViewTreeObserver.OnGlobalLayoutListenermLayoutChangeListener =new ViewTreeObserver.OnGlobalLayoutListener() {

????@Override

? ? public void onGlobalLayout() {

????????Rect rect =new Rect();

? ? ? ? final View decorView = getActivity().getWindow().getDecorView();

? ? ? ? decorView.getWindowVisibleDisplayFrame(rect);

? ? ? ? //計算出可見屏幕的高度

? ? ? ? int displayHight = rect.bottom - rect.top;

? ? ? ? //獲得屏幕整體的高度

? ? ? ? int hight = decorView.getHeight();

? ? ? ? //獲得鍵盤高度

? ? ? ? int keyboardHeight = hight - displayHight;

? ? ? ? boolean visible = (double) displayHight / hight <0.7;

? ? ? ? //如果屏幕高度和Window可見區(qū)域高度差值大于整個屏幕高度的0.7嚷辅,則表示軟鍵盤顯示中,否則軟鍵盤為隱藏狀態(tài)颠印。

? ? ? ? if (visible) {

????????????// bottomView 需要跟隨軟鍵盤移動的布局畔塔,上面提到的紅色布局

? ? ? ? ? ? // setDuration(0) 默認300, 設(shè)置 0 ,表示動畫執(zhí)行時間為0所袁,沒有過程盏档,只有動畫結(jié)果了

? ? ? ? ? ? //-keyboardHeight +100這個看手機設(shè)置,一般不需要+100

? ? ? ? ? ? bottomView.animate().translationY(-keyboardHeight +100).setDuration(0).start();

? ? ? ? }else {

????????????bottomView.animate().translationY(0).start();

? ? ? ? }

}

};

2.傳入初始化后的Edittext

private void showInputManager(EditText editText) {?

?/**

?* OnGlobalLayoutListener?

?* 每次布局變化時都會調(diào)用?

?* 界面view 顯示消失都會調(diào)用纲熏,軟鍵盤顯示與消失時都調(diào)用?

?* */?

?constraintLayout.getViewTreeObserver().addOnGlobalLayoutListener(mLayoutChangeListener); InputMethodManager inputManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); inputManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);

}

constraintLayout是上面提到的藍色部分妆丘,也就是父布局

3.注意事項

如果功能沒實現(xiàn),請檢查一下項目清單文件AndroidManifest.xml中是否有

android:configChanges="orientation|keyboardHidden|screenSize"等設(shè)置局劲,如果有先去掉在看效果勺拣。

如還有其他疑問可以評論區(qū)留言,樓主看到后會及時回復(fù)鱼填。

如果本文幫助到了你药有,還請點個贊支持一下,感謝~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苹丸,一起剝皮案震驚了整個濱河市愤惰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赘理,老刑警劉巖宦言,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異商模,居然都是意外死亡奠旺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門施流,熙熙樓的掌柜王于貴愁眉苦臉地迎上來响疚,“玉大人,你說我怎么就攤上這事瞪醋》拊危” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵银受,是天一觀的道長践盼。 經(jīng)常有香客問我,道長蚓土,這世上最難降的妖魔是什么宏侍? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮蜀漆,結(jié)果婚禮上谅河,老公的妹妹穿的比我還像新娘。我一直安慰自己确丢,他們只是感情好绷耍,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鲜侥,像睡著了一般褂始。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上描函,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天崎苗,我揣著相機與錄音狐粱,去河邊找鬼。 笑死胆数,一個胖子當著我的面吹牛肌蜻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播必尼,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蒋搜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了判莉?” 一聲冷哼從身側(cè)響起豆挽,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎券盅,沒想到半個月后帮哈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡渗饮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年但汞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片互站。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡私蕾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胡桃,到底是詐尸還是另有隱情踩叭,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布翠胰,位于F島的核電站容贝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏之景。R本人自食惡果不足惜斤富,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锻狗。 院中可真熱鬧满力,春花似錦、人聲如沸轻纪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刻帚。三九已至潦嘶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間崇众,已是汗流浹背掂僵。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工航厚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人锰蓬。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓阶淘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親互妓。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容