gpt4 book ai didi

android - 如何为 AlertDialog 设置自定义布局?

转载 作者:行者123 更新时间:2023-12-02 12:45:00 24 4
gpt4 key购买 nike

调用我的对话框:

alertDialog = showInfoDialog(message = "$wrongPasscodeMessage\n$retryMessage")

这是方法:
fun FragmentActivity.showInfoDialog(message: String?): AlertDialog? {
return try {
val customLayout = layoutInflater.inflate(R.layout.custom_layout, null)
AlertDialog.Builder(this)
.setView(customLayout)
.setMessage(message)
.setCancelable(false)
.show()
} catch (e: java.lang.Exception) {
e.log()
null
}
}

这是我的自定义布局:
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red"
android:paddingStart="@dimen/dp_44"
android:paddingEnd="@dimen/dp_44"
app:cardCornerRadius="@dimen/dp_12" />

但我不知道为什么我的对话框没有背景红色和圆角?
我错过了什么?

更新:
例如,如果我更改 custom_layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red" >

<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="350dp"
android:scaleType="centerCrop"
android:adjustViewBounds="true"
android:src="@drawable/googleg_disabled_color_18"/>
</LinearLayout>

我得到这样的东西:
enter image description here

但我想要这样

enter image description here

最佳答案

创建一个drawable xml类似的东西:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorPrimary"/>
<corners android:radius="20dp" />
</shape>

形状中的半径提供圆角。现在您可以将此 drawable 设置为您的 LinearLayout 的背景用于对话框,或使用自定义 <style>在您的 res/styles.xml :
<style name="CustomAlertDialog" parent="Theme.AppCompat.DayNight.Dialog.Alert">
<item name="android:windowBackground">@drawable/dialog_background</item>
<item name="textAllCaps">false</item>
</style>

并在您的 AlertDialog.Builder 中使用该样式:
AlertDialog.Builder(this, R.style.CustomAlertDialog).setView(...

使用该样式,您可以轻松地在应用程序内的所有对话框中一致地使用该形状。

关于android - 如何为 AlertDialog 设置自定义布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62431013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com