当我一个应用设置adjustResize后EditText弹不起来,设置fitsSystemWindows=“true”后会多出来白边(没有用Toolbar)
1条回答 默认 最新
你知我知皆知 2024-08-04 04:09关注以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这个问题是由于窗口透明度和调整大小的特性相互冲突导致的。在Android中,窗口透明度主要影响的是背景图片是否可见,而调整大小则会影响到布局的实际尺寸。
如果你希望使用EditText时有更大的空间显示内容,可以尝试以下方法:
- 设置EditText为
fitSystemWindows属性为false:这将使EditText占据整个屏幕区域,而不是限制其宽度或高度。但是,需要注意的是,如果adjustResize被禁用,则fitSystemWindows也会失效。 - 使用
LinearLayout作为容器:通过设置fitSystemWindows为true,并将其放在LinearLayout中,这样可以在不影响其他组件的情况下增加EditText的空间。 - 使用
FrameLayout代替LinearLayout:FrameLayout可以确保所有子控件都在同一视口中,从而避免了宽度和高度的变化对布局的影响。
以下是示例代码:
EditText editText = new EditText(this); editText.setSingleLine(true); // 设置为单行模式 // 设置EditText为Fit System Windows editText.setPadding(0, 0, 0, 0); // 避免改变宽度和高度 editText.setLayoutParams(new LayoutParams(FitSystemWindows.LayoutParams.WRAP_CONTENT, FitSystemWindows.LayoutParams.WRAP_CONTENT)); // 将EditText添加到框架布局中 ViewGroup linearLayout = (ViewGroup) findViewById(R.id.linear_layout); linearLayout.addView(editText);以上就是在设置
adjustResize和fitsSystemWindows冲突时的一些解决方案。解决 无用评论 打赏 举报- 设置EditText为