gpt4 book ai didi

android - 如何复用组件?

转载 作者:行者123 更新时间:2023-12-04 10:31:20 25 4
gpt4 key购买 nike

我为我的 Android 应用创建了一个 UI。我使用 Android Studio、java 和 xml。

我设计了一个看起来像这样的通用按钮组件:

enter image description here

应该能够配置此按钮的文本颜色、图标(图像)和按钮文本。

然后我想使用这个按钮组件并创建一个包含两个按钮的导航栏组件:

enter image description here

最后,我想获取导航组件,为按钮配置图标、文本颜色和文本,并在我的 Activity 布局中使用它来获得这样的导航栏:

enter image description here

能否请您举例说明我们如何实现这一目标?我有一些使用 Qt Quick 的经验,在 Qt Quick 中创建这样的组件非常简单直接。我希望 Android 的 xml 也能实现类似的功能。

我花了一个小时尝试使用包含标记和数据绑定(bind)来创建它,但没有任何运气。

最佳答案

您可以创建一个“自定义 View ”来扩展现有的 Button 类,也可以创建一个“复合 View ”,它将多个 View 组合成一个可重用的组件。复合 View 通常扩展容器类(如 LinearLayoutConstraintLayout。然后您可以将 XML 布局传递给它或在复合 View 中创建所需的 View 。

为了自定义您的新(复合) View ,您可以声明可设置样式的属性。

要开始使用自定义 View ,您可以查看 lessons 10.1 and 10.2 of the Codelabs for Advanced Android Development

可以找到复合 View 的教程和示例here .

请注意,在这两种情况下,您都可以在资源文件夹中创建一个 XML 文件,其中包含自定义/复合 View 的附加属性。这将允许您设置例如在 XML 中为您的 View 自定义图标。

<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MyCustomStyle">
<attr name="titleText" format="string" localization="suggested" />
<attr name="valueColor" format="color" />
</declare-styleable>

</resources>

在自定义/复合 View 的代码中,您可以通过构造函数中的 obtainStyledAttributes 方法读取信息。

public MyCustomView(Context context, AttributeSet attrs) {
super(context, attrs);

TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.MyCustomStyle, 0, 0);
String titleText = a.getString(R.styleable.MyCustomStyle_titleText);
}

(示例取自 vogella.com )

关于android - 如何复用组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60416160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com