Questions tagged «custom-component»

2
Android-编写自定义(复合)组件
我当前正在开发的Android应用程序的主要活动已经变得非常大。这主要是因为它包含TabWidget带有3个标签的。每个选项卡都有很多组件。活动必须立即控制所有这些组件。因此,我想您可以想象这个Activity有20个字段(几乎每个组件都有一个字段)。它还包含很多逻辑(单击侦听器,填充列表的逻辑等)。 我通常在基于组件的框架中所做的就是将所有内容拆分为自定义组件。每个自定义组件将承担明确的责任。它包含它自己的一组组件以及与该组件相关的所有其他逻辑。 我试图弄清楚如何做到这一点,并且在Android文档中找到了他们喜欢称之为“复合控件”的东西。(请参阅http://developer.android.com/guide/topics/ui/custom-components.html#compound并滚动到“复合控件”部分)我想基于定义了视图结构。 在文档中说: 请注意,就像使用Activity一样,您可以使用声明式(基于XML)方法来创建所包含的组件,也可以从代码中以编程方式嵌套它们。 好吧,这是个好消息!基于XML的方法正是我想要的!但是它没有说如何去做,除了它“像一个Activity”一样。但是我在Activity中要做的是调用setContentView(...)以从XML扩展视图。如果您例如使用subclass,则该方法不可用LinearLayout。 因此,我尝试像这样手动将XML充气: public class MyCompoundComponent extends LinearLayout { public MyCompoundComponent(Context context, AttributeSet attributeSet) { super(context, attributeSet); LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); inflater.inflate(R.layout.my_layout, this); } } 除了我正在加载的XML已LinearLayout声明为根元素这一事实外,此方法都有效。这导致膨胀LinearLayout的孩子MyCompoundComponent本身已经是一个孩子LinearLayout!因此,现在我们之间有了一个多余的LinearLayout MyCompoundComponent及其实际需要的视图。 有人可以为我提供一种更好的方法来解决此问题,避免冗余LinearLayout实例化吗?

1
何时使用<ui:include>,标记文件,复合组件和/或自定义组件?
我最近开始将JSF 2.0与Facelets结合使用,并且对新的复合组件感到困惑,因为他们知道&lt;ui:include&gt;Facelets 1.x提供的现有模板技术和其他模板技术。 这些方法之间有什么区别?在功能上,它们似乎提供了几乎相同的功能:&lt;ui:param&gt;vs &lt;cc:attribute&gt;,&lt;ui:insert&gt;+ &lt;ui:define&gt;vs标签文件,现有模板的重用。如果是复合组件,除了语法和清晰的接口规范外,还有什么?性能会有所不同吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.