如何在 Android 中定义自定义(复合)布局?

Posted

技术标签:

【中文标题】如何在 Android 中定义自定义(复合)布局?【英文标题】:How to define a custom (composite) layout in Android? 【发布时间】:2013-11-04 06:00:46 【问题描述】:

我想学习——如果有办法的话——如何定义自定义视图类型,并在 XML 布局中使用它。

例如,我有一个如下所示的自定义按钮:

<LinearLayout>
 <ImageView />
 <TextView />
</LinearLayout>

我知道我可以将它保存为 mybutton.xml,然后执行&lt;include layout="@layout/mybutton" /&gt;,但是有没有办法可以像这样使用它:

<MyButton /> 

?

我还希望能够在 Java 代码中实例化这个新的自定义类。像这样:

MyButton mb = new MyButton();

我应该将 MyButton 定义为 Java 类吗?如果是这样,我应该扩展什么,以及如何扩展?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

您需要为您的对象定义一个自定义类。

MyButton.java

public class MyButton extends View

您必须创建构造函数来扩充您的 XML 文档,然后通过完全限定的包名称调用 XML 中的对象。

<com.example.MyButton/>

【讨论】:

以上是关于如何在 Android 中定义自定义(复合)布局?的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中创建复合视图

如何在Android中制作自定义相机布局?

如何在android中的布局内创建自定义菜单?

如何在Android中自定义相机布局?

如何在 android 的 setContentView 中将自定义布局设置为主视图

如何使用Android自定义视图中的属性设置调整膨胀布局的大小?