【问题标题】:Can I make an Android button template?我可以制作一个 Android 按钮模板吗?
【发布时间】:2017-11-19 13:29:11
【问题描述】:

我当前的应用中有几个按钮。除了它们的文本和标签之外,它们都是相同的。如果我不必为每个按钮重复所有按钮配置信息,main.xml 会好很多。

有没有办法将按钮定义为模板,然后将其用作模板进行更多操作?

在这个例子中,我有以下大约 10 个:

 <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="Y"
            android:typeface="monospace"
            android:textSize="12pt"
            android:tag="Y"
            android:textColor="@color/button_text"
            android:background="@drawable/grey_blank_48x48"
            android:onClick="onButtonClicked"/>

如果我有一个就好了,然后是其中的 9 个:

 <Button2
            android:text="N"
            android:tag="N"/>

分辨率

就像@Luksprog 所说的那样:

<style name="ASR33_button" >
    <item name="android:id">@+id/button</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:padding">10dp</item>
    <item name="android:textColor">@color/button_text</item>
    <item name="android:background">@drawable/grey_blank_48x48</item>
    <item name="android:onClick">onButtonClicked</item>
    <item name="android:typeface">monospace</item>
    <item name="android:textSize">12pt</item>
</style>

main.xml 有这样的东西:

   <Button
            style="@style/ASR33_button"
            android:tag="Y"
            android:text="Y"
            />

   <Button
            style="@style/ASR33_button"
            android:tag="N"
            android:text="N"
            />

这一天。

【问题讨论】:

    标签: android


    【解决方案1】:

    我们style

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="btnlook" >
            <item name="android:id">@+id/button</item>
            <item name="android:layout_width">wrap_content</item>
            <item name="android:layout_height">wrap_content</item>
            <item name="android:padding">10dp</item>
            <item name="android:textColor">@color/button_text</item>
            <item name="android:background">@drawable/grey_blank_48x48</item>
            <item name="android:onClick">onButtonClicked</item>
            <item name="android:typeface">monospace</item>
            <item name="android:textSize">12pt</item>
        </style>
    </resources>
    

    然后在你的 xml 布局中:

    <Button
                style="@style/btnlook"
                android:text="N"
                android:tag="N"/>
    

    【讨论】:

      【解决方案2】:

      您可以创建一个自定义视图来扩展按钮并设置所有重复的内容。然后您可以按照您的描述使用它,但使用完全限定名称,而不仅仅是短名称。

      class MyButton extends Button {
          public MyButton() {
              // Set the values you want
          }
      }
      

      在 XML 中:

      <com.me.myapp.MyButton
          android:text="N"
          android:tag="N" />
      

      【讨论】:

        【解决方案3】:

        您可以创建selector

        <?xml version="1.0" encoding="UTF-8"?> 
        <shape xmlns:android="http://schemas.android.com/apk/res/android" 
             android:shape="rectangle">
            <solid android:color="#AAFFFFFF"/>
            <corners android:bottomRightRadius="7dp"
                android:bottomLeftRadius="7dp" 
                android:topLeftRadius="7dp"
                android:topRightRadius="7dp"/>
        

        并设置10个按钮android:background="@drawable/that_selecter"

        【讨论】:

          【解决方案4】:

          使自定义按钮子类化按钮的唯一方法。

          【讨论】:

            猜你喜欢
            • 2012-11-18
            • 1970-01-01
            • 2016-05-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多