QPopuWindow

Project Url: AndyAls/QPopuWindow
Introduction: 仿 qq 聊天消息长按弹窗,支持 RecyclerView,ListView,GridView,普通的 View,支持自定义属性扩展
More: Author   ReportBugs   
Tags:

如图 1 是 qq 聊天消息的长按的弹窗,最主要的特点是有一个指针,指针的位置是手指触摸手机屏幕的位置,而且弹窗会根据手指的触摸屏幕的不同位置显示在不同的位置,图 2 是 demo 中的效果图

图 1

0101.gif

图 2

0101.gif 0101.gif 0101.gif

QPopuWindow

QPopuWindow 继承自 PopuWindow,支持所有的 View 及属性自定义扩展,通过 builder 链式调用来设置不同的属性和显示,使用简单,代码简洁.

如何使用

  • step

1.在项目的根build.gradle添加

allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

2.在模块中添加依赖

dependencies {
            compile 'com.github.AndyAls:QPopuWindow:v2.0.0'
    }

3.使用

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

                QPopuWindow.getInstance(ListViewActivity.this).builder
                        .bindView(view, position)
                        .setPopupItemList(new String[]{"复制", "粘贴", "转发", "更多...."})
                        .setPointers(rawX, rawY)
                        .setOnPopuListItemClickListener(new QPopuWindow.OnPopuListItemClickListener() {
                            /**
                             * @param anchorView 为 pop 的绑定 view
                             * @param anchorViewPosition  pop 绑定 view 在 ListView 的 position
                             * @param position  pop 点击 item 的 position 第一个位置索引为 0
                             */
                            @Override
                            public void onPopuListItemClick(View anchorView, int anchorViewPosition, int position) {
                                Toast.makeText(ListViewActivity.this, anchorViewPosition + "---->" + position, Toast.LENGTH_SHORT).show();
                            }
                        }).show();
                return true;
            }
        });

点击查看源码详解和更多使用介绍

有缘看到此库的大兄弟们,欢迎给个 Star,欢迎 Issues,谢谢

Thanks

PopupList

Support Me
Apps
About Me
Google+: Trinea trinea
GitHub: Trinea