布局底部输入框希望被顶起的实现方式

当页面展示不全,我们通常的做法是根布局包裹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
效果图


[图片上传中...(Screenshot_20210909_142227_com.xinan.police.jpg-2374e-1631169111849-0)]
Screenshot_20210909_142230_com.xinan.police.jpg

每天记录一点点,收获成功与喜悦,耶

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容