package com.dejun.commonsdk.popWindow;import android.app.Activity;import android.content.Context;import android.graphics.drawable.ColorDrawable;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.AttributeSet;import android.view.Gravity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.view.WindowManager;import android.widget.LinearLayout;import android.widget.PopupWindow;import android.widget.RelativeLayout;import com.dejun.commonsdk.R;import com.dejun.commonsdk.base.BaseRvAdapter;import java.util.List;/** * Author:DoctorWei * Time:2018/12/13 11:08 * Description:列表显示的PopupWindow * email:1348172474@qq.com */public class RecyvlerViewBottomWindow extends PopupWindow {    public static final int INVALID_VALUE=-1;    private Activity mActivity;    public RecyvlerViewBottomWindow(Activity mActivity, int width, int height, RecyclerView.LayoutManager layoutManager, BaseRvAdapter adapter, final OnItemClickListener onItemClickListener) {        this.mActivity = mActivity;        LinearLayout view= (LinearLayout) LayoutInflater.from(mActivity).inflate(R.layout.popup_window_layout,null);        //动态添加recyclerView        RecyclerView recyclerView=new RecyclerView(mActivity);        RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);        recyclerView.setLayoutParams(layoutParams);        recyclerView.setLayoutManager(layoutManager);        recyclerView.setAdapter(adapter);        recyclerView.setBackgroundColor(mActivity.getResources().getColor(R.color.cardview_dark_background));        view.addView(recyclerView);        setContentView(view);        setFocusable(true);//设置焦点        setTouchable(true);//设置可触摸        setOutsideTouchable(true);//设置点击外部消失        setBackgroundDrawable(new ColorDrawable(0x000000));//点击返回键消失popupWindow 上面三个也得设置才有效果        setOnDismissListener(new OnDismissListener() {            @Override            public void onDismiss() {//销毁PopupWindow监听            }        });        if (width>0) {            setWidth(width);        }else{            setWidth(ViewGroup.LayoutParams.MATCH_PARENT);        }        if (height>0) {            setHeight(height);        }else{            setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);        }        adapter.setOnItemClickListener(new BaseRvAdapter.OnItemClickListener() {            @Override            public void onItemClick(Object o, int position) {                if (onItemClickListener!=null) {                    onItemClickListener.onItemClick(o, position);                    dismiss();                }            }        });    }    public void showPopupBottom(){        showAtLocation(mActivity.getWindow().getDecorView(), Gravity.BOTTOM,0,0);        showAlpha(0.5f);    }    @Override    public void dismiss() {        super.dismiss();        showAlpha(1f);    }    /**     * 设置窗口透明度     * @param alpha     */    private void showAlpha(float alpha) {        WindowManager.LayoutParams layoutParams=mActivity.getWindow().getAttributes();        layoutParams.alpha=alpha;        mActivity.getWindow().setAttributes(layoutParams);    }    public OnItemClickListener onItemClickListener;    public interface OnItemClickListener{        void onItemClick(T t,int position);    }}

更多相关文章

  1. 设置网络首选项
  2. android GridView条目点击变色
  3. android 8.0通知栏的适配
  4. android 按钮点击事件
  5. 仿微信右上角弹出PopupWindow
  6. android WebView onJsAler onJsC…
  7. Android---32---RatingBar
  8. android 编写简易视频播放器
  9. android修改默认桌面

随机推荐

  1. Android(安卓)API Guides---ExoPlayer Su
  2. ReactNative Android/iOS 打包详情流程
  3. Android 平铺背景图片
  4. android中跳转系统自带的界面
  5. Android开发周刊 第一期
  6. 【Android】Android 彩信发送的两种方式+
  7. android修改手机默认音量配置
  8. Android中调用天气预报
  9. Android资料链接保存
  10. eclipse中使用RecyclerView报错:Error inf