【问题标题】:I would like to use the button style "Widget.Button.Transparent" in Android Studio我想在 Android Studio 中使用按钮样式“Widget.Button.Transparent”
【发布时间】:2018-09-10 13:29:16
【问题描述】:

当我要使用这种按钮样式时,会出现以下消息:

错误:资源 android:style/Widget.Button.Transparent 是私有的。

关于我的系统的详细信息:

  • 操作系统:Ubuntu 16.04 LTS
  • Android Studio 3.1.4 Build # AI-173.4907809,于 2018 年 7 月 23 日构建
  • JRE:1.8.0_152-release-1024-b01 amd64
  • JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器虚拟机
  • Linux 4.15.0-33-通用

【问题讨论】:

  • 你不能使用它。查看此问题以了解更多详细信息:stackoverflow.com/questions/11358343/…
  • 尝试在android:之前和@之后添加*@*android:style/Widget.Button.Transparent" 并检查会发生什么。
  • @ʍѳђઽ૯ท 我认为这只适用于 AOSP。
  • @TheWanderer 因为它是一个私人资源,所以我想你删除的答案会有所帮助。在@drawable/btn_default_transparent 中创建自定义Button,然后对其进行样式设置。这似乎是最好的方法..
  • @ʍѳђઽ૯ท 是的,我删除了它,因为我意识到我需要找到额外的可绘制对象。它又回来了。

标签: android xml button ubuntu-16.04 android-studio-3.1.4


【解决方案1】:

自己做吧:

styles.xml (source):

<style name="Widget.Button.Transparent">
    <item name="background">@drawable/btn_default_transparent</item>
    <item name="textAppearance">?attr/textAppearanceSmall</item>
    <item name="textColor">@color/white</item>
</style>

在您的drawable 文件夹中的btn_default_transparent.xml (source):

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 The Android Open Source Project
     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:drawable="@drawable/btn_default_pressed" />
    <item android:state_focused="true" android:state_enabled="true"
        android:drawable="@drawable/btn_default_selected" />
    <item android:state_enabled="true"
        android:drawable="@drawable/btn_default_transparent_normal" />
</selector>

此处引用的可绘制对象是九个补丁 PNG,并且位于特定于 DPI 的位置。您可以通过@android:drawable/ 访问它们,但如果不能,这是我可以在https://github.com/aosp-mirror/platform_frameworks_base/tree/master/core/res/res/drawable-xhdpi/ 找到它们的最高密度。

【讨论】:

  • 或者,在我这边的Android\platforms\android-28\data\res\drawable\btn_default_transparent.xml(下载SDK的平台文件夹)中可以找到。这似乎是做到这一点 +1 BTW 的最佳方式。
  • @ʍѳђઽ૯ท 这是 XML,但它引用了一些九个补丁。
  • 当然有一些styles代码位于:Android\platforms\android-28\data\res\values\styles.xml
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 2017-02-20
相关资源
最近更新 更多