Android在Fragment中監聽軟鍵盤的彈出和關閉
原理是通過根佈局與當前佈局高度差來判斷的,Fragment實現ViewTreeObserver.OnGlobalLayoutListener這個介面。
@Override
public void onGlobalLayout() {
//比較根佈局與當前佈局的大小
int heightDiff = mRegisterScroll.getRootView().getHeight()- mRegisterScroll.getHeight();
if(heightDiff >100){
//大小超過100時,一般為顯示虛擬鍵盤事件
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
//將ScrollView滾動到底
mRegisterScroll.fullScroll(View.FOCUS_DOWN);
}
}, 100);
}else{
//大小小於100時,為不顯示虛擬鍵盤或虛擬鍵盤隱藏
}
}
onViewCreated中新增,mRootView為當前Fragment的根佈局
mRootView.getViewTreeObserver().addOnGlobalLayoutListener(this);
必須要在銷燬的時候remove掉,否則會空指標錯誤
@Override
public void onDestroyView() {
mRegisterScroll.getViewTreeObserver().removeOnGlobalLayoutListener(this);
super.onDestroyView();
}
相關推薦
Android聊天介面監聽軟鍵盤彈出聊天記錄跟著頂上去
專案中做了個聊天介面,就一個介面懶得扒框架,順手擼了。 最後被提了個Bug,彈出輸入法鍵盤擋住了一部分聊天記錄,如下 看了微信就不會這樣,尋思是不是改改佈局就可以。 結果,一直以為是動態改變recyclerview的高度,配合佈局,把recyclerview頂上去。 各種
Android在Fragment中監聽軟鍵盤的彈出和關閉
原理是通過根佈局與當前佈局高度差來判斷的,Fragment實現ViewTreeObserver.OnGlobalLayoutListener這個介面。 @Override public void onGlobalLayout() {
android中監聽軟鍵盤的彈出與隱藏,並獲取軟鍵盤的高度
最近專案中有一個需求上彈出軟鍵盤的時候,輸入框位移至輸入框上方,但是Activity中其他的VIew都不動。這個需求需要監聽軟軟鍵盤的彈出與隱藏,並獲取鍵盤的高度。上網找了一下發現,Android竟然沒有提供相應的介面。網上找到的替代方法中最常用的就是自定義根試圖從寫on
關於ListView中EditText在軟鍵盤彈出後的焦點問題
在ListView中,每次彈出軟鍵盤後就會重新呼叫getView()方法,導致EditText失去焦點。 解決辦法:在getView()方法中新增監聽器: editText.setOnTouchListener(new OnTouchListener() { @Override
android 真正監聽軟鍵盤得彈起和收
在開發中我們有時需要監聽鍵盤得變化情況 Softkeyboardlistener.class 工具類 public class Softkeyboardlistener { private View rootView;//activity的根
iOS-關於鍵盤彈出和關閉
在iOS模擬器上,打印出不同手機型號鍵盤彈出的寬高: iPhone4s,width:320 height:253; iPhone5/5s:width:320 height:253; iPhone6/6s:width:375 height:258; iPhone6 Plus/
Android開發之監聽軟鍵盤狀態(彈出收回)
概述 如何使用 隱患 概述 在我們開發過程中,有時需要監聽手機軟鍵盤狀態,但是Android沒有這樣的API,所以需要我們自己處理。 實現方案 實現效果與原理 先上一張效果圖 可以看到我們準確的監聽到了軟鍵盤的彈出與收起事
如何監聽軟鍵盤的彈出、隱藏(親測可用)
看了N多文章,終於找到了答案 第一步 注意:必須設定 android:windowSoftInputMode="adjustResize" 原理 注意下面的activityRootView對應的R.id.activityR
ScrollView中軟鍵盤彈出依然遮住控制元件
在一個Activity頁面中,常會有需要使用者輸入的文字控制元件EditText,EditText獲取焦點後,彈出的軟鍵盤往往會遮擋底部的其他控制元件,通常處理方法是: 1、xml佈局中,使用ScrollView包含使用者控制元件; 2、Manifest檔案
android開發中,彈出dialog的同時將軟鍵盤彈出
宣告:此部落格為本人平時開發遇到的一些問題的整理彙總 當我們在dialog裡面添加了EditText控制元件,又需要在dialog彈出來的時候同時彈出軟鍵盤時,就需要使用Handler來實現: H
Android安卓WebApp中 全屏和普通模式下 webview中軟鍵盤彈出擋住輸入框 解決方案
最近公司開發的WEBAPP遇到了一個比較噁心的問題。就是在webview中當需要輸入內容時,軟鍵盤彈起後,擋住了輸入框,試了很多辦法都不太滿意。(這裡要吐槽下,人家IOS端,蘋果系統都給直接封裝好了,
安卓移動端軟鍵盤彈出問題解決方案
log logs 情況 sel clas scrollto refs ext 題解 移動端開發難免拿到輸入框居中或者位於底部的情況,ios 端,軟鍵盤能夠按正常預期向上滑動(這裏有個問題,當 input 聚焦時,彈出軟鍵盤,input 上滑,此時屏幕是具有滾動效果的,還沒找
解決 安卓手機 軟鍵盤 彈出布局的問題
bsp doc html document 軟鍵盤 cti nbsp lur script 一、 js <script type="text/javascript">$(‘body,html‘).height(document.body.clientHeig
解決安卓手機上軟鍵盤彈出擠壓背景的問題
彈出 鍵盤 color col 軟鍵盤 func class div res demo: // 解決本頁面軟鍵盤彈窗背景擠壓的問題 var clientHeight = document.documentElement.clientHeight || documen
Android軟鍵盤彈出,覆蓋h5頁面輸入框問題
問題 過多 繼承 col 鍵盤 代碼 chrom 技術 fff 之前我們在使用vue進行 h5 表單錄入的過程中,遇到了Android軟鍵盤彈出,覆蓋 h5頁面 輸入框 問題,在此進行回顧並分享給大家: 系統:Android 條件:當輸入框在可視區底部或者偏下的位置 觸發
KeyboardUtil【軟鍵盤彈出後輸入框上移一定的高度】
together true 添加 存儲 oge 底部 putty 如果 original 版權聲明:本文為HaiyuKing原創文章,轉載請註明出處! 前言 演示獲取軟鍵盤高度並保存,然後根據輸入框的原有位置是否被軟鍵盤擋住了,如果被擋住了則將整體頁面上移一定的高度,當
周記3——解決fixed屬性在ios軟鍵盤彈出後失效的bug
images fff 發現 apple load http none orien 兩種方法 這周在做空間(“類似”qq空間)項目。首頁是好友發表的說說,可以針對每條說說進行評論,評論框吸附固定在屏幕底部。此時,Bug來了...在ios上,軟鍵盤彈出後fixed屬性失效了
Android EditText彈出軟鍵盤實現頁面標題頭不動,軟鍵盤彈出在編輯框下面
為了實現EditText編輯的時候彈出軟鍵盤標題頭不動,底部編輯框上移,想了好多種方法,也百度,問同事每種辦法都有問題,在這總結一下,希望能幫助到大家。 上圖看下效果: 可以看到彈出鍵盤的時候,只有EditText在軟鍵盤上面,還有一個藍色點,這個隨後再說。 用Relative
移動端web頁面底部固定元素(軟鍵盤彈出)解決方案
底部固定的輸入框,如圖: 解決方案如下 <div> <Header/> // absolute, top:0 <Footer/> // absolute, bottom:0 <Content/> // absolute
Android實時監聽軟鍵盤顯示或隱藏
搞了一個實時監聽軟鍵盤顯示或隱藏,當軟鍵盤隱藏了,做邏輯;軟鍵盤顯示出來了,做邏輯; 直接上程式碼了,下面是我寫的工具類,名字為 SoftKeyBoardListener : import android.app.Activity; import android.graphics.