如何抽象一组视图

时间:2017-01-23 20:30:27

标签: android

对于我的项目,我想创建一个包含多个此类项目的行: my custom view

一旦我有了这个“基础”布局/视图设置,我希望能够在几个场合使用它来处理不同类型的操作,例如: “保存”按钮,文本为“保存”,图像为星号或共享按钮,文本为“共享”,图像为共享图标

所以最终我想抽象这个自定义视图以允许我这样做。

我见过的一些事情是<include><merge>并创建自定义视图类。

我对这一切的看法是:

<include>:这并不能让我能够自定义所包含布局的内容,只能重用一些常见的xml

<merge>:同样,这不提供自定义方面

自定义视图类:我没有编写一个视图来执行默认情况下不会从android提供的内容(比如添加饼图视图或其他内容),而只是将一组已经实现的视图组合在一起。我认为这种方法可以解决我的问题我只是不确定它是否是正确的方法。

实际上我知道每次使用它时三个视图的重现代码都不多,但我认为找出抽象这个组的方法会很有用

1 个答案:

答案 0 :(得分:0)

创建自己的班级是最好的。

class MyView extends View {
    public MyView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}

稍后定义自定义属性。

<resources>
   <declare-styleable name="MyClass">
       <attr name="xxx" format="boolean" />
   </declare-styleable>
</resources>

记得在项目中添加。