我有一个自定义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)
。