• PopupWindow 学习总结


    http://wenku.baidu.com/link?url=d48Zr6m7XJq-2JagViGTtVhsvGNHoBg9bHJCbQUJSb5tjRPx9ecavBNlL71ywrT8josV7b9_V_P6nVl2mUJiSrIjkWIBvy3P7R7nh1Jthpe

    PopupWindow

    学习总结

     

     

    经过一段时间的学习

    ,

    了解了

    PopupWindow

    的基本用法

    ,

    如下

    1

    、为

    PopupWindow

    view

    布局,通过

    LayoutInflator

    获取布局的

    view.

    LayoutInflater inflater =(LayoutInflater)     

       

       

      

    this

    .

    anchor

    .getContext().getSystemService(Context.

    LAYOUT_INFLATER_SERVI

    CE

    ); 

     

     

     

     

    View textEntryView =  

    inflater.inflate(R.layout.

    paopao_alert_dialog

    null

    ); 

        

       

     

    2

    、显示位置,可以有很多方式设置显示方式

     

    pop.showAtLocation(findViewById(R.id.ll2), Gravity.LEFT, 0, -90); 

     

    3

    、进出场动画

     

    pop.setAnimationStyle(R.style.PopupAnimation); 

     

    4

    、点击

    PopupWindow

    区域外部

    ,PopupWindow

    消失

     

     

     

     

    this

    .

    window

     = 

    new

     PopupWindow(anchor.getContext()); 

     

    this

    .

    window

    .setTouchInterceptor(

    new

     OnTouchListener() { 

     

    @Override

     

     

    public

     

    boolean

     onTouch(View v, MotionEvent event) { 

     

     

    if

    (event.getAction() ==MotionEvent.

    ACTION_OUTSIDE

    ) {     

       

       

       

     

     

     

     

    BetterPopupWindow.

    this

    .

    window

    .dismiss(); 

     

     

     

    return

     

    true

     

     

     

     

    return

     

    false

     

    }); 

     

     

          

    教训:

     

     

     

     

    1

     

    PopuWindow 

    的大小由下面代码控制;

     

    newPopupWindow(view, ViewGroup.LayoutParams.FILL_PARENT, 

    ViewGroup.LayoutParams.WRAP_CONTENT)

     

    2

     

    popuWindow.

    showAsDropDown(v);

    方法是将

    PopuWindow

    显示在

    View v

    的左下方;

     

    3

     

    需要顺利让

    PopUpWindow dimiss

    (即点击

    PopuWindow

    之外的地方此或者

    back

    PopuWindow

    会消失);

    PopUpWindow

    的背景不能为空。必须在

    popuWindow.showAsDropDown(v);

    或者其它的显示

    PopuWindow

    方法之前设置它的背景不为

    空:如下面两行代码:

     

    ColorDrawablecd = new ColorDrawable(-0000); 

    popuWindow.setBackgroundDrawable(cd); 

    popuWindow.showAsDropDown(v); 

    注意这里设置背景并不会覆盖

    xml

    文件定义的背景。

     

    4

     

    当有

    popuWindow.setFocusable(false);

    的时候,说明

    PopuWindow

    不能获得焦点,即使

    设置设置了背景不为空也不能点击外面消失,只能由

    dismiss()

    消失,但是外面的

    View

    的事件

    还是可以触发

    ,back

    键也可以顺利

    dismiss

    掉。当设置为

    popuWindow.setFocusable(true);

    时候,加上下面两行设置背景代码,点击外面和

    Back

    键才会消失。

     

    5

     

    // 

    这里设置显示

    PopuWindow

    之后在外面点击是否有效。如果为

    false

    的话,那么点击

    PopuWindow

    外面并不会关闭

    PopuWindow

    。当然这里很明显只能在

    Touchable

    下才能使

    用。

     

    popuWindow.setOutsideTouchable(true);

  • 相关阅读:
    P4318 完全平方数 [二分答案+容斥+莫比乌斯函数]
    P2522 [HAOI2011]Problem b
    莫比乌斯反演学习笔记
    UVALive646 Deranged Exams [容斥+排列组合]
    HDU5514 Frogs [容斥(II)]
    P2567 [SCOI2010]幸运数字 [容斥+有技巧的搜索]
    微信api退款操作
    类中或者是程序集中,根据虚拟路径获取绝对路径
    加载程序集中内嵌资源
    .NET Framework 框架简述01
  • 原文地址:https://www.cnblogs.com/bigben0123/p/4156107.html
Copyright © 2020-2023  润新知