使用指南 在项目根目录 settings.gradle 添加 jitpack
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
mavenLocal()
//关键代码
maven { url = uri("https://jitpack.io") }
}
}在app目录下的build.gradle引用 dialogxVersion最新版本为 0.0.50.beta38
val dialogXVersion = "0.0.50.beta38"
//引入DialogX主体
implementation("com.github.suzhelan.DialogX:DialogX:$dialogXVersion")
//非必须 DialogX官方提供的主题样式
implementation("com.github.suzhelan.DialogX:DialogXKongzueStyle:$dialogXVersion")
implementation ("com.github.suzhelan.DialogX:DialogXMIUIStyle:$dialogXVersion")
implementation("com.github.suzhelan.DialogX:DialogXIOSStyle:$dialogXVersion")
implementation("com.github.suzhelan.DialogX:DialogXMaterialYou:$dialogXVersion")初始化流程正常初始化即可,不要忘了将模块APK资源注入到宿主Activity,不然会查找不到XML的
一般建议在 Application 的实现类中的 onCreate 方法中进行配置:
//初始化
DialogX.init(this);
DialogX.globalTheme = DialogX.THEME.AUTO;
DialogX.globalStyle = new MaterialYouStyle();//如果有附上注入模块APK注入资源到宿主的代码
public static void injectResourcesToContext(Context context) {
try {
Resources resources = context.getResources();
AssetManager assetManager = resources.getAssets();
@SuppressLint("DiscouragedPrivateApi")
Method method = AssetManager.class.getDeclaredMethod("addAssetPath", String.class);
method.setAccessible(true);
method.invoke(assetManager, moduleApkPath);
} catch (Exception ex) {
}
}- 1.如果遇到在Dialog里使用ListView,RecyclerView等动态长度的View,始终只展示一行的高度 可通过以下代码解决 注意 这是Dialogx自身的特性,与本fork无关
MessageDialog.build()
.setTitle("请选择赞助项目")
.onShow {
val listView = SimpleTextListAdapter.createView(
activity,
singleSelectMenuText,
object : SimpleTextListAdapter.OnItemClickListener {
override fun onItemClick(
adapter: BaseAdapter,
position: Int,
view: View
) {
//跳转到浏览器
val intent = Intent(Intent.ACTION_VIEW)
intent.data = payItemList[position].payUrl.toUri()
activity.startActivity(intent)
}
}
)
//核心代码
it.dialogImpl.boxList.addView(listView)
it.dialogImpl.boxList.isVisible = true
}
.setMessage(message)
.setOkButton("支付完成") { dialog, v ->
showQueryOrderResultDialog()
false
}.show()