• android PopupWindow使用实例


    注:点空白或菜单外隐藏popupwindow菜单;

    但是,若点击有点击事件的组件则要再写代码手动隐藏;

        @Override
        public boolean onTouchEvent(MotionEvent event) {
            // TODO Auto-generated method stub
            if (mMenuPPW!=null){
                if (mMenuPPW.isShowing())
                    mMenuPPW.dismiss();
            }        
            return super.onTouchEvent(event);
    
        }

    .java

     1 private PopupWindow mMenu;
     2 
     3 
     4     public void CreatMenu(View view) {
     5         if (mMenu == null) {
     6             LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     7             View v = inflater.inflate(R.layout.popuppindow_group,
     8                     null, false);
     9             LinearLayout lytRequest = (LinearLayout) v.findViewById(R.id.lyt_pw_groupmember_request);
    10             lytRequest.setOnClickListener(this);
    11             LinearLayout lytExit = (LinearLayout) v.findViewById(R.id.lyt_pw_groupmember_exit);
    12             lytExit.setOnClickListener(this);
    13             mMenu = new PopupWindow(v);
    14 //            moreMenu.setWidth(300);
    15             mMenu.setWidth(LayoutParams.WRAP_CONTENT);
    16             mMenu.setHeight(LayoutParams.WRAP_CONTENT);
    17             mMenu.showAsDropDown(view);
    18         } else {
    19             if (mMenu.isShowing()) {
    20                 mMenu.dismiss();
    21             } else {
    22                 mMenu.showAsDropDown(view);
    23             }
    24         }
    25     }    
    26 
    27 @Override
    28     public void onClick(View v) {
    29         // TODO Auto-generated method stub
    30         switch (v.getId()) {
    31          case R.id.lyt_activitygroupmembers_menu:
    32              CreatMenu(v);
    33          break;
    34          case R.id.lyt_pw_groupmember_request:
    35              Toast.makeText(this, "request", Toast.LENGTH_SHORT).show();
    36              mMenu.dismiss();
    37          break;
    38          case R.id.lyt_pw_groupmember_exit:
    39              Toast.makeText(this, "exit", Toast.LENGTH_SHORT).show();
    40              mMenu.dismiss();
    41          break;         
    42          
    43         }
    44 
    45     }

    .xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@android:color/darker_gray" >
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
    
            <LinearLayout
                android:id="@+id/lyt_pw_groupmember_request"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
    
                <TextView
                    android:id="@+id/TextView03"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginLeft="12dp"
                    android:layout_marginRight="12dp"
                    android:gravity="left|center"
                    android:text="request"
                    android:textSize="18sp" />
    
                <TextView
                    android:id="@+id/TextView04"
                    android:layout_width="match_parent"
                    android:layout_height="0.5dp"
                    android:layout_marginLeft="4dp"
                    android:layout_marginRight="4dp"
                    android:background="@android:color/darker_gray"
                    android:text="TextView" />
    
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/lyt_pw_groupmember_exit"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
    
                <TextView
                    android:id="@+id/TextView02"
                    android:layout_width="match_parent"
                    android:layout_height="40dp"
                    android:layout_marginLeft="12dp"
                    android:layout_marginRight="12dp"
                    android:gravity="left|center"
                    android:text="exit"
                    android:textSize="18sp" />
    
            </LinearLayout>
    
        </LinearLayout>
        
    
    </RelativeLayout>

     注:mMenu.showAsDropDown(view, 0, 16);即偏移view,x,y轴的间距

  • 相关阅读:
    一个滑动小块
    js 封装的函数 总结
    引用公用文件
    静态页面表单中js验证
    linux中Firefox浏览器 手动安装 flash
    将双击“root的主文件”弹出的窗口设置为文件浏览器
    eclipse中的aptana插件的安装
    System Center VMM请注意不同语言版本的差异
    CodeFirst模式开发涉及到mysql简单使用
    Echarts的使用
  • 原文地址:https://www.cnblogs.com/jenson138/p/4335818.html
Copyright © 2020-2023  润新知