首页 > 解决方案 > Android通过结合两种样式使按钮无边框不起作用

问题描述

我想制作一个back样式如下的按钮:

 <style name="back_button" parent="Widget.AppCompat.Button.Borderless">
        <item name="android:fontFamily">@font/frutiger_light</item>
        <item name="android:textColor">@color/lightSaber</item>
        <item name="android:textSize">16sp</item>
        <item name="android:textAllCaps">false</item>
        <item name="android:text">@string/back</item>
        <item name="android:background">@android:color/transparent</item>
    </style>

但现在我已经有了一种退出的风格:

  <style name="FrutigerLight16LightSaber">
        <item name="android:fontFamily">@font/frutiger_light</item>
        <item name="android:textColor">@color/lightSaber</item>
        <item name="android:textSize">16sp</item>
  </style>

所以我想用Widget.AppCompat.Button.Borderlessand添加一个新样式FrutigerLight16LightSaber

.我通过组合and尝试了两种解决方案parent,但不起作用。

    <style name="FrutigerLight16LightSaber.Borderless" parent="Widget.AppCompat.Button.Borderless">
    </style>

然后

   <style name="back_button" parent="FrutigerLight16LightSaber.Borderless">
        <item name="android:textAllCaps">false</item>
        <item name="android:text">@string/back</item>
        <item name="android:background">@android:color/transparent</item>
    </style>

就这样,我失去了FrutigerLight16LightSaber风格。

   <style name="FrutigerLight16LightSaberBorderless" parent="FrutigerLight16LightSaber">
        <item name="android:borderlessButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
    </style>

然后

   <style name="back_button" parent="FrutigerLight16LightSaberBorderless">
        <item name="android:textAllCaps">false</item>
        <item name="android:text">@string/back</item>
        <item name="android:background">@android:color/transparent</item>
    </style>

这样我就输了Widget.AppCompat.Button.Borderless

谢谢你的帮助!

标签: androidandroid-layout

解决方案


尝试使用

<style name="FrutigerLight16LightSaber.Borderless" parent="Widget.AppCompat.Button.Borderless">
    <item name="android:fontFamily">@font/frutiger_light</item>
    <item name="android:textColor">@color/lightSaber</item>
    <item name="android:textSize">16sp</item>
</style>

然后像下面这样使用:

<style name="back_button" parent="FrutigerLight16LightSaber.Borderless">
    <item name="android:textAllCaps">false</item>
    <item name="android:text">@string/back</item>
    <item name="android:background">@android:color/transparent</item>
</style>

推荐阅读