【问题标题】:Is to possible to have a single xml for multiple button states in android?是否可以在 android 中为多个按钮状态使用单个 xml?
【发布时间】:2014-01-13 14:55:19
【问题描述】:

我的活动中有 6 个图像按钮,每个按钮都有不同的图像..

对于这 6 个图像按钮,我在每个按钮的可绘制文件夹中有 6 个 xml 按钮状态。

有什么方法可以让我将所有 6 个 xml 合并为 1 个单个 xml?

【问题讨论】:

  • 为什么是 6?单个 xml 不是对所有人都有效吗?
  • 看看可能对你有帮助stackoverflow.com/questions/4740538/…
  • 我在问我是否可以为这 6 个按钮的不同状态提供一个 xml?

标签: android button state


【解决方案1】:

是的,你可以。对于 6 个不同的图像,您不需要 6 个 xml,然后再为 6 个 XML 文件组合一个 xml。

您可以只拥有一个包含所有状态图像的 XML。

检查此示例。

选择器>

如您所见,在这个单一的 xml 中,您可以直接引用图像(drawables)。

android:drawable="@drawable/btn_default_selected"

【讨论】:

    【解决方案2】:

    请阅读: http://developer.android.com/training/improving-layouts/reusing-layouts.html

    对于 findViewById(),您将拥有具有相同 id 的子视图;要找到这些视图,您必须找到根视图并使用该视图来查找其子视图的 id。 (例如,您可以使用 LinearLayout 作为按钮,这样您就可以拥有多个此类按钮。)

    顺便说一句,如果 xml 是一个可绘制对象,您可以从所有按钮中引用该可绘制对象。

    更新(是的,我知道在编辑问题后上面没有回答问题):

    我为几个按钮使用了相同的背景可绘制对象(选择器)。前景是文本(实际上是一个 LinearLayout)。我建议您尝试重用相同的背景可绘制对象。

    请注意,即使在文本按钮上也可以有图像,有 setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom)setCompoundDrawablesWithIntrinsicBounds(int left, int top , int right, int bottom).

    【讨论】:

    • 我在问我是否可以为这 6 个按钮的不同状态提供一个 xml?
    猜你喜欢
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-11
    • 2020-01-15
    相关资源
    最近更新 更多