在Android中创建复合视图

Add*_*dev 3 java android views

我想创建一个自定义视图(我称之为MyComplexView),例如RelativeLayoutImageview,一TextView,和Button.

我想用布局声明一个xml,然后创建类:

MyComplexView extends RelativeLayout{...}
Run Code Online (Sandbox Code Playgroud)

但我不知道应该覆盖什么来表明哪个布局应该膨胀.

我怎样才能做到这一点?谢谢

DAr*_*rkO 5

像这样的东西:

  1. 从超类中添加构造函数.(具有上下文的那个用于创建视图programaticaly,其他用于在XML中添加视图时).

  2. 创建一个名为init()example 的方法,并从每个构造函数中调用它.

  3. 在init方法里面做:

    LayoutInflater.from(context).inflate(R.layout.my_view_layout,this,true);

现在膨胀额外的参数实际意味着:

true - >将布局附加到您的案例相对布局中的根(如果您的布局根也是相对布局,那么在xml内部您可以只合并标签,并在代码中对齐它们以便层次结构更简单)或任何布局你喜欢的布局.

这个 - >在您的情况下将膨胀视图附加到您正在扩展的相对布局的布局.

它会自动附加到根目录 - > extends RelativeLayout.

然后你可以使用findViewById:

this.findViewById(R.id.myView);
Run Code Online (Sandbox Code Playgroud)