Jacksgong / JKeyboardPanelSwitch

For resolve the layout conflict when keybord & panel are switching (Android键盘面板冲突 布局闪动处理方案)
Apache License 2.0
4.18k stars 685 forks source link

怎样设置键盘不遮盖页面?也就是把页面推上去 #40

Open wudifamo opened 8 years ago

wudifamo commented 8 years ago

比如在列表中可以显示最后一行 还有一个问题,在相同的页面下,我使用pulltorefreshlistview 键盘和表情面板弹出还是会闪动但是切换不会闪,替换成listview则一切正常,请问怎样解决?页面需要上下拉刷新功能

Jacksgong commented 8 years ago

通常来说不掩盖页面的做法,是使用可滚动布局,如ScrollView

pulltorefreshlistview 这个库我并没有使用过,可以给下相关库的地址,我抽空的时候给你看看,具体问题出在哪里。

wudifamo commented 8 years ago

https://github.com/chrisbanes/Android-PullToRefresh

问题貌似是出在PulltorefreshBase类中的onSizeChanged里面,页面布局改变的时候会调用这个方法,导致listview重绘,所以会闪吧 我现在作法是在将要弹出键盘时把WCK赋值true,虽然不闪了,但是有一定概率listview会变形,而且在scrollview中弹出键盘界面会推上去一点,切到表情面板又会缩回来,只是不会闪,还是没有完美解决

@Override
    protected final void onSizeChanged(int w, int h, int oldw, int oldh) {
        if (DEBUG) {
            Log.d(LOG_TAG, String.format("onSizeChanged. W: %d, H: %d", w, h));
        }

        super.onSizeChanged(w, h, oldw, oldh);
        if (KeyboardUtil.WCK) {
            KeyboardUtil.WCK = false;
        }else{
            // We need to update the header/footer when our size changes
            refreshLoadingViewsSize();

            // Update the Refreshable View layout
            refreshRefreshableViewSize(w, h);
        }
        /**
         * As we're currently in a Layout Pass, we need to schedule another one
         * to layout any changes we've made here
         */
        post(new Runnable() {
            @Override
            public void run() {
                requestLayout();
            }
        });
    }
wudifamo commented 8 years ago

还有一个问题,在coordinatorlayout+viewpager的fragment中 根部局 (KPSwitchRootFrameLayout/KPSwitchRootLinearLayout/KPSwitchRootRelativeLayout) 应该用在哪里?

wudifamo commented 8 years ago

额...我照着其它的改了一个KPSwitchRootCoordinatorLayout,貌似解决了. 下拉刷新的那个可以的话还是麻烦帮忙看下

Jacksgong commented 8 years ago

好的。我周末的时候看看。

Jacksgong commented 8 years ago

不好意思周末有些忙忘了,我最晚明晚给你看看,今晚应该有点事情。

wudifamo commented 8 years ago

;()

geeksammao commented 7 years ago

@wudifamo 想请问下PullToRefreshListview造成界面闪的问题后来解决了吗,我们也遇到了同样的问题下,希望跟您探讨下解决方法。

fenggit commented 6 years ago

通常来说不掩盖页面的做法,是使用可滚动布局ScrollView,怎么监听键盘弹起?有这个接口吗?手动滑到底部吗?我想把整个布局顶起了