最近做需求遇到一個問題, 說是問題也可能不是,主要還是看需求吧。廢話不多說,先拋出這個需求問題,做的東西是對某些素材的評論彈窗,類似抖音、頭條這種,很多app也都有, 實現方案是使用了BottomSheetDialogFragment 去實現, 視圖的高度是屏幕高度的80%,后來由於某些原因替換為DialogFragment,這時問題出現了,當我點擊評論彈窗里的某條內容回復評論時,需要彈出輸入法,這時這個輸入法就會將我的整個評論彈窗頂起來(現象看起來是這樣),實際是我不需要輸入法將評論彈窗頂起來,這個測試肯定要提bug了。
有問題就要解決啊,首先想到是不是要配置 window.setSoftInputMode();、window.addFlags(); 查了一通資料,各種組合配置, 花了半天時間,竟沒什么卵用,后面偶然翻到一篇文章關於不讓DialogFragment讓軟鍵盤頂起,試了一下果然管用, 在DialogFragment的onCreate方法中做如下配置即可,看下代碼:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Black_NoTitleBar_Fullscreen);
}
后記:
這個問題不是什么高難度的技術問題,也不是什么優雅的解決方案, 只作為一次跳坑記錄,防止以后遇到類似問題再去查資料浪費很多時間。
