PopupWindow使用

来源:互联网 发布:arp攻击软件 编辑:程序博客网 时间:2024/04/29 19:49
public class ShowPopUtils {     privateView contentView;      private PopupWindow popupWindow;      public void showPop(Context mc, View m) {       LayoutInflater inflater = LayoutInflater.from(mc);       contentView = inflater.inflate(R.layout.popup_shop_service, null);       popupWindow = new PopupWindow(contentView);     contentView.findViewById(R.id.tv_pss_cancel).setOnClickListener(new View.OnClickListener() {            @Override             public void onClick(View view) {            popupWindow.dismiss();            }       });      //背景色 不设置背景不能点击外面消失      popupWindow.setBackgroundDrawable(new ColorDrawable(Color.argb(50, 52, 53, 55)));     //宽高      popupWindow.setHeight(LinearLayout.LayoutParams.MATCH_PARENT);      popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT);    //设置点击窗口外边窗口消失      popupWindow.setOutsideTouchable(true);      // 设置此参数获得焦点,否则无法点击    popupWindow.setFocusable(true);    //显示位置 activity底部弹出      popupWindow.showAtLocation(mView, Gravity.BOTTOM, 0, 0); }      public View getV() {       returncontentView;     }      public void dismiss() {         if (popupWindow != null && popupWindow.isShowing()) {            popupWindow.dismiss();         }      }}布局文件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:background="@android:color/transparent"    android:orientation="vertical">    <TextView        android:id="@+id/tv_pss_bg"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_weight="1" />    <TextView        android:id="@+id/tv_pss_title"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/colorText"        android:gravity="center"        android:paddingTop="@dimen/car_10px"        android:text="提示"        android:textColor="@color/color_setup_text" />    <ListView        android:id="@+id/lv_pss_service"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/colorText" />    <TextView        android:id="@+id/tv_pss_cancel"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginBottom="@dimen/car_8px"        android:layout_marginTop="@dimen/car_5px"        android:background="@color/colorText"        android:gravity="center"        android:padding="@dimen/car_20px"        android:text="取消" /></LinearLayout>调用方法 private void showService(final List<DataBean> mList) {        final ShowPopUtils showPopUtils = new ShowPopUtils();        //方法调用  传上下文和view        showPopUtils.showPop(mContext, findViewById(R.id.tv_asi_rz));        //得到布局        View contentView = showPopUtils.getV();        ListView mLv_service = (ListView) contentView.findViewById(R.id.lv_pss_service);              ServiceListAdapter serviceListAdapter = new ServiceListAdapter(mContext, mList);        mLv_service.setAdapter(serviceListAdapter);         mLv_service.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {                 showPopUtils.dismiss();//销毁           }         });  }位置         1、popupWindow.showAsDropDown(mView);//在控件的正下方        2、popupWindow.showAtLocation(mView, Gravity.BOTTOM, 0, 0);//activity底部弹出            int[] location = new int[2];       mLine.getLocationOnScreen(location);    3、popupWindow.showAtLocation(mView, Gravity.NO_GRAVITY, location[0], location[1] - popupWindow.getHeight());//控件的正上方            4、//控件的左边       popupWindow.showAtLocation(v13, Gravity.NO_GRAVITY, location[0] - popupWindow.getWidth()                               , location[1] - (popupWindow.getHeight() - v13.getHeight()) / 2);


1 0
原创粉丝点击