WPopup – 一个简单用并且高度定制的Popupwindow

作者 : 开心源码 本文共2213个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共158人阅读

GitHub地址,感兴趣的点个Star!谢谢!

  • 自动设置show的位置
  • 自动设置倒三角的位置
  • 跟随手指点按位置弹出
  • 高度定制

依赖

allprojects {    repositories {        ...        maven { url 'https://jitpack.io' }    }}dependencies {        implementation 'com.github.wanglu1209:WPopup:lastReleases'}    

普通操作

// 创立WPopupval pop = WPopup.Builder(this)      .setData(data)    // 设置数据,数据类为WPopupModel      .setCancelable(false) // 设置能否能点击外面dismiss      .setPopupOrientation(WPopup.Builder.HORIZONTAL)   // 设置item排列方向 默认为竖向排列      .setOnItemClickListener(object : WPopup.Builder.OnItemClickListener {          override fun onItemClick(view: View, position: Int) {              // 设置item点击事件              Toast.makeText(view.context, data[position].text, Toast.LENGTH_LONG).show()          }      })      .create()

根据View自动设置显示位置

pop.showAtView(view)

根据view手动设置显示位置

pop.showAtDirectionByView(view, WPopupDirection.LEFT)

自己选择弹出位置 上下左右

pop.showAtDirection(WPopupDirection.BOTTOM)

骚操作 根据手指点击位置来显示

val longClickPop = WPopup.Builder(this)      .setData(longData)      .setPopupOrientation(WPopup.Builder.VERTICAL)      .setClickView(longClickView) // 肯定要设置点击的view,使用来注册事件      .setOnItemClickListener(object : WPopup.Builder.OnItemClickListener {          override fun onItemClick(view: View, position: Int) {              Toast.makeText(view.context, "$position", Toast.LENGTH_LONG).show()          }      })      .create()

自动筛选位置 默认为右下方

longClickPop.showAtFingerLocation()

手动筛选位置

longClickPop.showAtFingerLocation(WPopupDirection.TOP)

方法及参数

WPopup已经为您设置好了通使用的UI,您只要要自己配置参数就可

方法名参数类型默认值备注
setDataList<WPopupModel>null设置数据 参数为一个字符串,一个图片的resId
setCancelableBooleanfalse设置点击外面能否能dismiss
setOnItemClickListenerOnItemClickListenernull设置item点击事件
setPopupOrientationStringWPopupWindow.Builder.VERTICAL设置item的排列方向
setDividerColorIntColor.WHITE设置分割线的颜色
setDividerSizeInt1设置分割线的粗细
setDividerMarginInt10设置分割线边距
setIsDimBooleanfalse设置弹出时背景能否半透明
setDimValueFloat0.4f设置背景半透明的值 0.1f – 1f 值越大,越接近透明
setPopupBgColorIntColor.parseColor(“#CC000000”)设置弹出背景颜色
setPopupMarginInt1设置弹出时和view的距离
setClickViewViewnull设置长按事件的view
setAnimIntWPopupAnim.ANIM_ALPHA设置动画
setIconDirectionIntWPopupDirection.LEFT设置icon的方向 假如data中设置了图片的话
setTextColorIntColor.WHITE设置item中text的颜色
setTextSizeInt14设置item中text的大小

当然,假如默认的UI不适合您,您也可以自己设置UI,只要传入少量参数就可

val customPopup = BasePopup(      WPopParams(              R.layout.view_custom, // layoutRes,必需参数              this, // activity,必需参数              true, // 背景能否变暗,非必需参数              cancelable = false,              width = ViewGroup.LayoutParams.MATCH_PARENT, // popup的宽 只支持LayoutParams里的              height = ViewGroup.LayoutParams.WRAP_CONTENT      ))

GitHub地址,感兴趣的点个Star!谢谢!

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » WPopup – 一个简单用并且高度定制的Popupwindow

发表回复