1. 程式人生 > >android 當設定Activity狀態列為透明時,鍵盤彈出ScrollView滾動無效解決方案

android 當設定Activity狀態列為透明時,鍵盤彈出ScrollView滾動無效解決方案

final View decorView = getWindow().getDecorView();
decorView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
public void onGlobalLayout() {
        Rect rect = new Rect();
        decorView.getWindowVisibleDisplayFrame(rect);
        int 
screenHeight = 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(); } });