【发布时间】:2015-12-23 09:07:46
【问题描述】:
我正在为 Android 编写一个日历应用程序。这个应用程序具有日视图、周视图和月视图,与标准日历应用程序非常相似。
在调用 onMeasure、onLayout、onDraw 之前,所有三个视图都需要知道它们显示的日期。
现在,我一直在考虑是否应该创建完全自定义的视图类,或者尽可能使用 XML 布局,并且仅在需要时将自定义视图嵌入到布局中,但我遇到了第二个问题选项:再次,因为所有布局都将具有至少一个取决于所选日期的子视图,并且我知道将参数传递给视图的唯一方法是调用自定义构造函数(而不是在我不能膨胀的地方完全通过参数) - 基本上,我必须使用完全自定义的视图......
我说的对吗?有没有办法将参数传递给膨胀的视图?
【问题讨论】:
-
您可以通过使用 XML 中的属性或调用视图实例上的方法来更改视图。根据您的场景,您可能希望使用新的 XML 属性创建自定义视图,您可以在构造函数中读取该属性。
-
您在寻找custom attributes吗?
-
@Schrieveslaach - 不,因为据我了解,自定义属性与我正在寻找的相反:它们允许您在 XML 中定义属性,而不是从代码中获取它们。 Xavier.S 的回答很棒,见下文。
标签: android android-layout layout-inflater