首页
/ 【亲测免费】 EasyPopup 使用教程

【亲测免费】 EasyPopup 使用教程

2026-01-17 09:12:14作者:冯爽妲Honey

项目介绍

EasyPopup 是一个对 Android 的 PopupWindow 进行封装的库,旨在使在项目中使用 PopupWindow 更加简单、方便和快捷。它支持链式调用,提供了相对于 AnchorView 的各个方位弹出的方法,并且支持在弹出 PopupWindow 时背景变暗、指定 ViewGroup 背景变暗、设置变暗颜色等功能。

项目快速启动

添加依赖

首先,在项目的 build.gradle 文件中添加以下内容:

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

然后在你的模块的 build.gradle 文件中添加依赖:

dependencies {
    implementation 'com.github.zyyoona7:EasyPopup:VERSION_CODE'
}

请将 VERSION_CODE 替换为最新的版本号。

基本使用

以下是一个简单的示例,展示如何创建和显示一个 EasyPopup

import com.zyyoona7.popup.EasyPopup;

public class MainActivity extends AppCompatActivity {

    private EasyPopup mCirclePop;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mCirclePop = EasyPopup.create()
            .setContentView(this, R.layout.layout_circle_comment)
            .setAnimationStyle(R.style.RightPopAnim)
            .setFocusAndOutsideEnable(true)
            .apply();

        findViewById(R.id.btn_show_popup).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mCirclePop.showAtLocation(findViewById(R.id.root_layout), Gravity.CENTER, 0, 0);
            }
        });
    }
}

应用案例和最佳实践

链式调用

EasyPopup 支持链式调用,使得代码更加简洁和易读:

mCirclePop = EasyPopup.create()
    .setContentView(this, R.layout.layout_circle_comment)
    .setAnimationStyle(R.style.RightPopAnim)
    .setFocusAndOutsideEnable(true)
    .apply();

自定义 PopupWindow

你可以通过继承 BasePopup 抽象类来自定义 PopupWindow,实现更复杂的功能:

public class ComplexPopup extends BasePopup<ComplexPopup> {

    private Button mOkBtn;
    private Button mCancelBtn;

    public static ComplexPopup create(Context context) {
        return new ComplexPopup(context);
    }

    @Override
    protected void initAttributes() {
        setContentView(R.layout.layout_complex_popup);
        setFocusAndOutsideEnable(true);
    }

    @Override
    protected void initViews(View view, ComplexPopup popup) {
        mOkBtn = view.findViewById(R.id.btn_ok);
        mCancelBtn = view.findViewById(R.id.btn_cancel);

        mOkBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理 OK 按钮点击事件
            }
        });

        mCancelBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理 Cancel 按钮点击事件
                dismiss();
            }
        });
    }
}

典型生态项目

EasyPopup 可以与其他 Android UI 库结合使用,例如:

  • RxJava/RxAndroid: 用于处理异步操作和事件流。
  • ButterKnife: 用于简化视图绑定。
  • Glide/Picasso: 用于图片加载和处理。

通过这些库的结合使用,可以进一步提高开发效率和应用性能。

登录后查看全文
热门项目推荐
相关项目推荐