zoukankan      html  css  js  c++  java
  • 【Android开发:自定义控件系列二】关于PopupWindow的注意点

    1.注意自定义PopupWindow的构造函数,就行了

    public MenuWindow(Context context, IMenuItemOnClickListener onClickListener) {
            // 继承基类的构造函数很重要,基类已经帮你实现好了Back键的监听,已经边框阴影效果
            super(context);
            this.mContext = context;
            this.mItemOnClickListener = onClickListener;
            
            mInflater = LayoutInflater.from(mContext);
            final View view = mInflater.inflate(R.layout.menu_window, null);
            setContentView(view);
            setupViews(view);
            
            // 必须设置宽高
            setWidth(LayoutParams.FILL_PARENT);
            setHeight(LayoutParams.WRAP_CONTENT);
            
            
            //====== 如果不继承PopupWindow的构造函数,可以试一下以下代码,可以实现监听Back键
            // 如果设置setBackgroundDrawable,onTouch监听事件不启用,
            // OutsideTouchable不启用,OnKey的KEYCODEY_BACK不启用;
            // 如果没有设置,OutsideTouchable启用,OnTouch启用。
            //setBackgroundDrawable(new BitmapDrawable()); 
            
            // 必须设置,不然OnKey监听事件不启用,不响应
    //        view.setFocusableInTouchMode(true);
    //        view.setOnKeyListener(mPlayListLvKeyListener);
    //        view.setOnTouchListener(mOnTouchListener);
            // 必须设置,不然OnKey监听事件只能被父窗口拦截
            /////////////////////////////////////////////////
            
            setFocusable(true);
            // 设置PopupWindow的弹出动画
            setAnimationStyle(R.style.animation_playlist_popup);
        }


    2.另外,如果继承基类,完全可以用setTouchInterceptor监听按键事件,但要setFocusable(true);

    转载请注明出处:http://www.cnblogs.com/hpboy

  • 相关阅读:
    Dijkstra(单队优化)
    最短路(hdu4725)(建点巧妙)
    次小生成树
    2019暑假集训DAY1(problem3.play)(单调栈思想)
    平衡树
    线段树区间加乘(模板)
    杜恩德的新博客,都来看看-duende99
    oracle 11g如何完全卸载
    如何连接别人电脑上的Oracle数据库--duende99
    Java中的Filter过滤器
  • 原文地址:https://www.cnblogs.com/hpboy/p/2826769.html
Copyright © 2011-2022 走看看