我有一个自定义View,我想在XML文件中而不是通过代码指定布局。

无论如何,我可以获取一个Android XML布局文件并将其用于刷新自定义View的内容吗?

我知道可以通过Activity方法在setContentView中完成,但是对于Views似乎没有类似的方法。

最佳答案

基本概述如下:在活动代码中,使用findViewById获取要在活动主视图中以XML定义的子视图的容器。然后,使用mySubview = getLayoutInflater().inflate(R.layout.mysubview, mycontainerInRootView)构建新的包含视图。最后,您可以使用返回的子视图findViewById将子视图的控件挂接到主活动中。

在自定义View类中,类似地,您只需要让LayoutInflater实例为您完成工作即可,但是细节可能会有所不同。我将使自定义View ViewGroup子类开始,然后在构造函数中使用LayoutInflater.from(ctx)来获取充气机并从那里开始。看起来像mContents = LayoutInflater.from(ctx).inflate(R.layout.mycustomview, this)

10-07 19:03
查看更多