在Kotlin中使用Butterknife绑定颜色和Drawable时,由于Butterknife的限制,无法直接使用Butterknife注解绑定AndroidX的颜色和Drawable。但是可以通过以下解决方法绑定颜色和Drawable:
ContextCompat.getColor(context, R.color.color_name)
来获取颜色值。例如,假设我们要绑定一个TextView的颜色:
class MainActivity : AppCompatActivity() {
@BindView(R.id.text_view)
lateinit var textView: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ButterKnife.bind(this)
val color = ContextCompat.getColor(this, R.color.colorAccent)
textView.setTextColor(color)
}
}
ContextCompat.getDrawable(context, R.drawable.drawable_name)
来获取Drawable资源。例如,假设我们要绑定一个ImageView的Drawable:
class MainActivity : AppCompatActivity() {
@BindView(R.id.image_view)
lateinit var imageView: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
ButterKnife.bind(this)
val drawable = ContextCompat.getDrawable(this, R.drawable.ic_launcher_foreground)
imageView.setImageDrawable(drawable)
}
}
这样就可以在Kotlin中绑定颜色和Drawable,同时解决Butterknife无法直接绑定AndroidX的颜色和Drawable的问题。