我在recyclerView适配器中使用anko来创建viewholder的视图。我已成功完成此操作,但不知道如何通过视图ID使用kotlin合成来引用它(我想在不使用findViewById的情况下获取它)
值/ ids.xml
<resources>
<item name="txv1" type="id"/>
<item name="txv2" type="id"/>
My Anko getView代码:
private fun getView(context: Context): View{
return with(context){
linearLayout {
lparams(width = matchParent, height = wrapContent)
padding = dip(10)
orientation = android.widget.LinearLayout.HORIZONTAL
//Task Number
textView {
id = R.id.txv1
text = "TextView 22"
textSize = 16f
typeface = Typeface.MONOSPACE
padding =dip(5)
}.lparams(){
weight = 1f
}
//Task Name
textView {
id = R.id.txv2
text= "TextView 33"
textSize = 16f
typeface = android.graphics.Typeface.DEFAULT_BOLD
padding =dip(5)
}
}
}
}
我是从ids.xml分配自定义ID但是如何在没有findViewById的情况下获取自定义ID
由于
答案 0 :(得分:2)
在研究了很多之后,我得出的结论是,现在不可能通过anko创建的视图直接引用 解决方法是使用 -
val txv1 = findViewById(R.id.txv1) as TextView
OR
声明一个变量来保存anko方法中创建的视图的引用
代码如下 -
var txv1: TextView? = null
private fun getView(context: Context): View{
return with(context){
linearLayout {
txv1 = textView {
text = "TextView"
}
}
}
}
希望这会对别人有所帮助。感谢