【问题标题】:Setting default background of ImageButton to transparent (using AndroidX)将 ImageButton 的默认背景设置为透明(使用 AndroidX)
【发布时间】:2019-11-03 00:33:56
【问题描述】:

我正在使用 AndroidX 支持库。在我的清单中,我声明:

<application
        ...            

        android:theme="@style/AppTheme">

values.styles.xml我声明:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    ...

    <item name="android:imageButtonStyle">@style/MyImageButton</item>
</style>

<style name="MyImageButton" parent="Widget.AppCompat.ImageButton">
    <item name="android:background">@android:color/transparent</item>
</style>

然后我通过以下方式使用 ImageButton:

<ImageButton
    android:id="@+id/image"
    android:layout_width="40dp"
    android:layout_height="40dp" />

不幸的是,我的ImageButton 显示的是灰色背景而不是透明背景。我该怎么做才能修复它?

【问题讨论】:

    标签: android android-styles androidx android-imagebutton


    【解决方案1】:

    你需要替换这一行

    <item name="android:imageButtonStyle">@style/MyImageButton</item>
    

    <item name="imageButtonStyle">@style/MyImageButton</item>
    

    这也是@prince给出的另一种方式

    【讨论】:

      【解决方案2】:

      在你的代码中添加这一行

      style="@style/MyImageButton"
      

      所以,

      <ImageButton
          style="@style/MyImageButton"
          android:id="@+id/image"
          android:layout_width="40dp"
          android:layout_height="40dp" />
      

      或者您不想在所有按钮标签中添加样式,您可以按照answer 更改默认按钮的样式。希望它会帮助你。尝试让我知道它是否有效。

      谢谢。 快乐编码:)

      【讨论】:

        【解决方案3】:

        您可以简单地将ImageButtonbackground 设置为null,如下所示:

        <ImageButton
            android:id="@+id/image"
            android:layout_width="40dp"
            android:layout_height="40dp"
            android:background="@null" />
        

        这将使您的ImageButton 透明。

        【讨论】:

        • 这个问题是关于摆脱通过样式为每个 ImageButton 执行此操作的工作。您的答案不使用样式或以其他方式设置默认值。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-03
        • 2021-03-04
        • 2011-08-31
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        相关资源
        最近更新 更多