zoukankan      html  css  js  c++  java
  • Android 自定义Popupwindow 注意事项,手机和平板的区别

    首先自定义ppw是要继承Popupwindow 的

    而要成功的显示出自定义的ppw就必须实现下面的三句代码

    // 必要的三要素下面,不然popWind显示不出来
    this.setContentView(mView);
    this.setWidth(ViewGroup.LayoutParams.MATCH_PARENT);
    this.setHeight(ViewGroup.LayoutParams.MATCH_PARENT);

    //上面的代码是必须设置的,不然ppw显示不出来。

    this.setFocusable(true);// 使popwind中获取不到焦点,默认是false,这里是为了使EditText没有焦点,从而不会弹出输入框

    this.setBackgroundDrawable(new BitmapDrawable());
    this.setOutsideTouchable(true); // 点击popwind以外的地方关闭popWind

    //这两句代码我要来解释一下

    (1)、setFocusable()这个方法如同上面的解释一样,但我要提醒的是:

        如果你自定义的ppw包含了ListView这个控件并设置了OnItemClickListener事件,

        因为我在项目开发中遇到这个问题所以提出来,这句代码在手机端的时候不管你设置了true还是false  ,ListView的OnItemClickListener事件都会触发,但在Android平板中设置了false是不会触发OnItemClickListener这个事件的,所以要提醒大家注意一下

    (2)、setOutsideTouchable()这个方法的说明就是点击ppw以外的地方关闭ppw,但如果你这么就设置为true的话,那么告诉你这是不起任何作用的,别问我为什么,因为我也不知道,如果想要起作用就必须还要设置这个setBackgroundDrawable(new BitmapDrawable());// 这样设置才能点击屏幕外dismiss窗口  ,这两句代码同时使用才能起到效果

  • 相关阅读:
    自动滑块验证登录QQ-java实现
    今日校园自动提交问卷-Java实现
    文库下载实现自动化
    测试
    软件工程结课小结
    结对项目-java生成四则运算
    JS判断对象为空的三种方法
    vue 组件间 8 大通讯方式 之三 eventBus
    vue 组件间 8 大通讯方式 之二 provide/ inject ref / refs
    vue 组件间 8 大通讯方式 之一 props / $emit $children / $parent
  • 原文地址:https://www.cnblogs.com/woaixingxing/p/5581386.html
Copyright © 2011-2022 走看看