android 加载recyclerView的popupWindow
16lz
2021-01-26
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 RecyvlerViewBottomWindowextends 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); }}
更多相关文章
- 设置网络首选项
- android GridView条目点击变色
- android 8.0通知栏的适配
- android 按钮点击事件
- 仿微信右上角弹出PopupWindow
- android WebView onJsAler onJsC…
- Android---32---RatingBar
- android 编写简易视频播放器
- android修改默认桌面