安卓:基于布局的自定义视图:如何实现?

6

我正在开发一款Android应用,但在自定义视图方面遇到了一些困难。

我想创建一个可重复使用的视图,其中包含几个标准布局元素。比如说一个RelativeLayout和一些按钮。

我该怎么做呢?我应该创建一个扩展RelativeLayout的自定义视图类,并以编程方式添加这些按钮吗?我认为这有点过度设计了?

在Android中,正确的方法是什么呢?

1个回答

11

以下是创建自定义聚合视图的大致步骤:

  1. 扩展RelativeLayout。
  2. 在您的新类中提供一个接受Context和AttributeSet参数的构造函数,确保首先调用超类。此时不要添加任何内容。稍后再进行下一步。
  3. 重写onFinishInflate方法,在此方法中可以通过Java代码或膨胀XML资源添加内容。
  4. 添加任何事件处理程序等。
  5. 如有需要,可选择创建一个资源文件以设置小部件的属性。



3
请注意,对于 XML 布局资源, <merge> 根元素非常适用于此场景。 - CommonsWare
2
我需要提到的是,使用onFinishInflate方法无法填充以<merge>为根的布局。如果在onCreate方法中填充,则可以正常工作。 - Peterdk
1
还有一个官方文档:http://developer.android.com/guide/topics/ui/custom-components.html#compound但实际上,这个答案对我更有用 :) - BoD

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接