Я бы хотел сделать предупреждение с закругленными углами, используя anko, без использования XML.Я вставил мою текущую попытку ниже.Есть ли способ сделать полностью прозрачный пользовательский вид оповещения или сделать его округленным и изменить цвет фона?
class TestActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
alert {
customView {
verticalLayout {
backgroundDrawable = GradientDrawable().apply {
shape = GradientDrawable.RECTANGLE
cornerRadius = 15f
setColor(Color.BLACK)
}
for(i in 0..5){
textView("Hello World") {
textColor = Color.WHITE
gravity = Gravity.CENTER
}.lparams(matchParent,dip(50))
}
}
}
}.show()
}
}
Зависимости
ext.kotlin_version = '1.3.21'
ext.anko_version='0.10.8'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
implementation 'androidx.core:core-ktx:1.1.0-alpha05'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.2-alpha02'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0-alpha02'
// Anko Commons
implementation "org.jetbrains.anko:anko-commons:$anko_version"
// Anko Layouts
implementation "org.jetbrains.anko:anko-sdk15:$anko_version"
// sdk15, sdk19, sdk21, sdk23 are also available
implementation "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
Редактировать:
var alertDialog: Dialog? = null
alertDialog = alert {
customView {
verticalLayout {
backgroundDrawable = GradientDrawable().apply {
shape = GradientDrawable.RECTANGLE
cornerRadius = 15f
setColor(Color.BLACK)
}
for(i in 0..5){
textView("Hello World") {
textColor = Color.WHITE
gravity = Gravity.CENTER
}.lparams(matchParent,dip(50))
}
button {
text = "Cancel"
setOnClickListener {
alertDialog?.dismiss()
}
}
}
}
}.show() as? Dialog
// This right here does the trick
alertDialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
alertDialog?.show()
делает то, что я хочу.Спасибо, бластервла