android 當設定Activity狀態列為透明時,鍵盤彈出ScrollView滾動無效解決方案
阿新 • • 發佈:2019-02-16
final View decorView = getWindow().getDecorView(); decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect = new Rect(); decorView.getWindowVisibleDisplayFrame(rect); intscreenHeight = decorView.getRootView().getHeight(); int heightDifference = screenHeight - rect.bottom;//計算軟鍵盤佔有的高度 = 螢幕高度 - 檢視可見高度 LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) loginBinding.scrollView.getLayoutParams(); layoutParams.setMargins(0, 0, 0, heightDifference);//設定ScrollView的marginBottom的值為軟鍵盤佔有的高度即可loginBinding.scrollView.requestLayout(); } });