ConciseDialog 链式调用,动态,快速改变Dialog内容/数据/样式

android开发的朋友们,大家一家会遇到这样的需求,需要在XX页面,弹出层,然后在弹出层中进行各种操作。
曾经的方法,一个弹出层,对应一个功能。
现在想想,写的想死。
于是乎,ConciseDialog便被设计出来了。
使用方法如下:

first

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
        compile 'com.github.deilsky:ConciseDialog:v1.1'
}

second
ConciseDialog.newInstance(R.layout.nav_dialog, new ConciseDialog.ReadyListener() {
                @Override
                public void onComplete(View view) {
                    initDialogView(view);
                }

                @Override
                public void onError(String e) {

                }
            }).matchWidth(true)
              .gravity(ConciseDialog.DialogGravity.MIDDLE)
              .absolute(true)
              .height(80)//高度 百分比
              .show(MainActivity.this.getFragmentManager(), "test1");
private void initDialogView(final View v) {
  title = v.findViewById(R.id.tv_d_title);
  title.setText("测试标题");
  yes = v.findViewById(R.id.nav_yes);
  yes.setText("是");
  yes.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, "是", Toast.LENGTH_SHORT).show();
        }
    });
    no = v.findViewById(R.id.nav_no);
    no.setText("否");
    no.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(MainActivity.this, "否", Toast.LENGTH_SHORT).show();
        }
    });
}

  third 讲解
  1.ConciseDialog 继承于android.app.DialogFragment; 所以可以像正常的Dialog一样使用
  2.ConciseDialog.newInstance(R.layout.nav_dialog, new ConciseDialog.ReadyListener() {
        @Override
        public void onComplete(View view) {
          initDialogView(view);//dialog成功弹出,加载layout成功时,回调
        }
        @Override
        public void onError(String e) {}
    }) //根据使用需要,可以引入各种layout文件
  3.gravity //显示的位置:上,中,下
  4.absolute //是否使用绝对宽高
  5.matchWidth// 宽度是否满屏
  6.height //绝对模式下,高度为xxxdp;非绝对模式下,高度为屏幕的xx%
  7.width //仅在matchWidth为false时,生效;绝对模式下,宽度为xxxdp;非绝对模式下,宽度为屏幕的xx%
  8.动态切换layout/数据时,需要为讲解2中的代码,进行实例。通过onComplete(View view)进行重置数据

传送门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容