为了账号安全,请及时绑定邮箱和手机立即绑定

Android开发笔记——Bug 5497 键盘与输入框的纠纷

标签:
Android

在某种条件下,软键盘会遮挡键盘,这是无论你在Menifest文件中如何设置键盘属性,都不理想,这个是Android系统的bug,以下代码用于解决问题:(至于什么条件下,不记得了,因为隔了好久时间才回来做个笔记,用于以后备用)

android.app.Activityandroid.graphics.Rectandroid.os.Buildandroid.view.Viewandroid.view.ViewTreeObserverandroid.widget.FrameLayoutAndroidBug5497Workaround {
    (Activity activity) {
        AndroidBug5497Workaround(activity)}

    View                     FrameLayout.LayoutParams = (Activity activity) {
        resourceId = activity.getResources().getIdentifier()= activity.getResources().getDimensionPixelSize(resourceId)FrameLayout content = (FrameLayout) activity.findViewById(android.R.id.)= content.getChildAt().getViewTreeObserver().addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener() {
            () {
                () {
                    = .getHeight()= }
                possiblyResizeChildOfContent()}
        })= (FrameLayout.LayoutParams) .getLayoutParams()}

    () {

        usableHeightNow = computeUsableHeight()(usableHeightNow != ) {
            usableHeightSansKeyboard = .getRootView().getHeight()heightDifference = usableHeightSansKeyboard - usableHeightNow(heightDifference > (usableHeightSansKeyboard / )) {
                (Build.VERSION.>= Build.VERSION_CODES.) {
                    .= usableHeightSansKeyboard - heightDifference + } {
                    .= usableHeightSansKeyboard - heightDifference}
            } {
                .= }

            .requestLayout()= usableHeightNow}
    }

    () {
        Rect r = Rect().getWindowVisibleDisplayFrame(r)(r.- r.)}
}

2.再出现这种问题的Activity的onCreate方法中调用以下代码,解决问题:

(Bundle savedInstanceState) {
    .onCreate(savedInstanceState)setContentView(R.layout.)AndroidBug5497Workaround.()}

原文链接:http://www.apkbus.com/blog-184446-78105.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消