当页面展示不全,我们通常的做法是根布局包裹ScrollView,但是建议使用NestedScrollView,但是如果恰好页面最底部是输入框,而且需求希望当输入法被唤起的时候,能够把输入框顶上去,这种怎么实现呢?修改输入法模式?
<activity
android:name=".Activity.ArchiveAddActivity"
android:windowSoftInputMode="adjustResize|adjustPan"
android:screenOrientation="portrait" />
别天真了,你会发现软键盘弹起的瞬间,标题栏也被顶上去了,还有办法:
页面根布局里添加:
android:fitsSystemWindows="true"
ok,是可以解决标题被顶上去的问题,但是如果你用的是沉浸式,那么状态栏已经很标题栏分离开了,色系显著不一样,你可能还要去判断Android 版本,去给状态栏设置背景色,所以,这不是一条正常的解决道路!
目前为止,我认为比较省时省力的解决方式是站在巨人的肩膀上,使用第三方库
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_archive_add);
EventBus.getDefault().register(this);
ImmersionBar.with(this)
.keyboardEnable(true)
.init();
StatusBarUtils.translucent(this);
viewInit();
textStyleInit();
dataInit();
spinnerDataInit();
initWidget();
}
关键代码就是
ImmersionBar.with(this)
.keyboardEnable(true)
.init();
没错,就这一句话,就可以解决底部输入框和标题栏状态栏之间的爱很清楚,很nice
效果图
每天记录一点点,收获成功与喜悦,耶