• 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轴的间距

  • 相关阅读:
    hdu 6214 : Smallest Minimum Cut 【网络流】
    hdu 6205: card card card【输入挂】
    UVa 10054 : The Necklace 【欧拉回路】
    hdu 6127 : Hard challenge (2017 多校第七场 1008)(计算几何)
    hdu 6143: Killer Names (2017 多校第八场 1011)
    hdu 6134: Battlestation Operational (2017 多校第八场 1002)【莫比乌斯】
    hdu 4992 Primitive Roots 【求原根模板】
    poj 1284 : Primitive Roots
    codevs 2804 最大最小数质因数
    codevs 2370 小机房的树
  • 原文地址:https://www.cnblogs.com/jenson138/p/4335818.html
Copyright © 2020-2023  润新知