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(); } });
android 当设置Activity状态栏为透明时,键盘弹出ScrollView滚动无效解决方案
最新推荐文章于 2022-11-25 14:23:48 发布
当在Android应用中设置Activity状态栏为透明,遇到键盘弹出导致ScrollView无法正常滚动的问题,可以通过监听布局变化,计算键盘高度并调整ScrollView的marginBottom来解决。具体实现是获取窗口装饰视图,并在全局布局改变时更新ScrollView的布局参数,使其能适应键盘弹出的状态。
2204

被折叠的 条评论
为什么被折叠?



