美文网首页技术干货程序员Android知识
华为手机虚拟按键的监听

华为手机虚拟按键的监听

作者: 小白龙vip | 来源:发表于2016-03-09 10:40 被阅读1593次

    最近在做开发的时候发现监听华为手机MeateP系列的手机底部都会有虚拟按键,这几天在做公司视屏通话界面的时候,展现对方像的同时还需要显示对方的音频打开或者关闭状态。在华为手机上面出现了虚拟键盘打开关闭出现图片错位的问题。最终解决方案如下。

    1. 自定义一个根布局View,继承RelativeLayout.
    2. 虚拟键盘弹出会出现布局大小变化,即会回掉onLayout()实现给布局重新定位。
    3. 添加自定义布局到根布局xml当中。
    4. 实现布局虚拟键盘监听接口onLayoutKeyChange

    代码如下

    /**
     * Created by xaio bailong on 2016/3/2.
     */
    public class VitualKey extends RelativeLayout {
    
        private onLayoutKeyChange mLayoutKeyChange;
    
        public VitualKey(Context context) {
            super(context);
        }
    
        public VitualKey(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
    
        public VitualKey(Context context, AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
        }
    
    
        /**
         * @param changed 布局发生改变 ture 没有改变False
         * @param l
         * @param t
         * @param r
         * @param b
         */
        @Override
        protected void onLayout(boolean changed, int l, int t, int r, int b) {
            super.onLayout(changed, l, t, r, b);
            //Log.e("onLayout", "onLayout: b "+b);
            if (changed)
                mLayoutKeyChange.onLayoutKeyChange(b);
        }
    
    
        public void setonLayoutKeyChange (onLayoutKeyChange layoutKeyChange) {
            mLayoutKeyChange = layoutKeyChange;
        }
    
    
        public interface onLayoutKeyChange {
            /**
             * 虚拟键盘状态监听
             *
             * @param b 布局距离底部的布局
             */
            void onLayoutKeyChange(int b);
        }
    
    }
     
    

    相关文章

      网友评论

        本文标题:华为手机虚拟按键的监听

        本文链接:https://www.haomeiwen.com/subject/htnzkttx.html