【发布时间】:2010-07-30 01:35:32
【问题描述】:
我有一个自定义 View,我想在 XML 文件中而不是通过代码来指定其布局。
我是否可以获取一个 Android XML 布局文件并使用它来清除我的自定义 View 的内容?
我知道它可以通过setContentView 方法在Activity 中完成,但似乎没有Views 的类似方法。
【问题讨论】:
标签: android xml user-interface view
我有一个自定义 View,我想在 XML 文件中而不是通过代码来指定其布局。
我是否可以获取一个 Android XML 布局文件并使用它来清除我的自定义 View 的内容?
我知道它可以通过setContentView 方法在Activity 中完成,但似乎没有Views 的类似方法。
【问题讨论】:
标签: android xml user-interface view
以下是基本概述:在您的活动代码中,使用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)。
【讨论】: