You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Drawable为Anko EditText添加边框?Anko DSL代码实现

在Anko DSL中为EditText添加Drawable边框

嘿,我来帮你搞定这个问题!你之前写的background="@drawable/file"确实不对——在Anko的Kotlin DSL里,不能直接用字符串设置background,因为这个属性需要的是一个Drawable对象,而非XML布局里那种字符串格式的资源引用。

下面是修正后的代码,分两种场景给你说明:

基础写法(适配API 21+)

如果你的应用只需要兼容Android 5.0及以上版本,可以直接通过resources.getDrawable()获取Drawable实例:

editText() {
    hint = "Enter message"
    lines = 4
    maxLines = 4
    singleLine = false
    // 替换成你实际的drawable资源名称
    background = resources.getDrawable(R.drawable.your_border_drawable, context.theme)
}

兼容低版本的写法(推荐)

如果需要覆盖API 21以下的设备,建议用AppCompat库的ContextCompat工具类,它会自动处理版本兼容逻辑:

// 先导入这个工具类
import androidx.core.content.ContextCompat

editText() {
    hint = "Enter message"
    lines = 4
    maxLines = 4
    singleLine = false
    // 替换成你的实际drawable资源
    background = ContextCompat.getDrawable(context, R.drawable.your_border_drawable)
}

小提醒

  • 确保你已经在res/drawable目录下创建了对应的边框Drawable文件(比如你提到的file.xml),文件内容可以参考你之前看过的《如何为EditText添加边框?》里的XML写法。
  • 记得把代码里的your_border_drawable替换成你自己的资源文件名哦!

内容的提问来源于stack exchange,提问作者jmc42

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:46:17