ConciseDialog 链式调用,动态,快速改变Dialog
2018-03-14 本文已影响51人
帷幕丶归心
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)进行重置数据