Kotlin发布了新的kotlinx.android.synthetic,它删除了样板代码。Kotlin合成工作良好,而应用程序只有一种味道。
在我的例子中,有更多的350+口味和一些有一个不同的布局XML文件。所有其他视图ids在所有风味和单一活动(Kotlin类)中对所有这些味道都是相同的。我的科特林课是我的主要口味。
所以应用程序的结构就像:
当我尝试导入kotlinx.android.synthetic.main.my_activity.*导入时,它在主要风格上工作得很好。
但是,当选择不同的味道,它没有工作。
目前,我正在使用一个棘手的解决方案。删除kotlin合成导入和添加下面的代码,然后它的工作罚款。
val tvUsrname = findViewById<TextView>(R.id.tvUsername)其他50个视图将在ids中找到视图。
但我不想为findViewById编写样板代码。
请告诉我还有什么其他的解决办法。提前谢谢。
发布于 2021-08-04 17:19:54
由于不推荐使用kotlin-android-extension,所以可以使用ViewBinding。我尝试了我的口味,它工作很好,没有任何问题时,改变活跃的味道。
发布于 2021-02-25 15:30:05
如果您希望实现更少的更改,一个可能的解决方案是调用findViewById。如果您正在处理片段,则可以:
class TvgFragment : Fragment() {
private lateinit var myImage: ImageView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val root = inflater.inflate(R.layout.my_fragment, container, false)
myImage = root.findViewById(R.id.my_image)
return root
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
myImage.set...
}
}https://stackoverflow.com/questions/57522747
复制相似问题