1

When I am going to use this button style, this message appears:

error: resource android:style/Widget.Button.Transparent is private.

Details about my system:

  • OS: Ubuntu 16.04 LTS
  • Android Studio 3.1.4 Build # AI-173.4907809, built on July 23, 2018
  • JRE: 1.8.0_152-release-1024-b01 amd64
  • JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
  • Linux 4.15.0-33-generic
M4LWarE
  • 13
  • 2
  • 1
    You can't use it. View this question to more details: https://stackoverflow.com/questions/11358343/i-want-to-use-widget-button-transparent-style-with-my-button – R. Cioletti Sep 10 '18 at 13:34
  • Try adding `*` before `android:` and after `@`. `@*android:style/Widget.Button.Transparent"` and check what happens. – ʍѳђઽ૯ท Sep 10 '18 at 13:37
  • @ʍѳђઽ૯ท I think that only works with AOSP. – TheWanderer Sep 10 '18 at 13:53
  • @TheWanderer Since it's a private resource, then your deleted answer will help i suppose. Creating the custom `Button` in `@drawable/btn_default_transparent` then styling it. This seems to be the best way to do that.. – ʍѳђઽ૯ท Sep 10 '18 at 13:56
  • @ʍѳђઽ૯ท yeah I deleted it because I realized I needed to find the extra drawables. It's back again. – TheWanderer Sep 10 '18 at 13:56

1 Answers1

1

Just make it yourself:

In 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>

In btn_default_transparent.xml in your drawable folder (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>

The drawables referenced in this are nine-patch PNGs, and in DPI-specific locations. You may be able to access them with @android:drawable/, but if not, this is the highest density I can find them at: https://github.com/aosp-mirror/platform_frameworks_base/tree/master/core/res/res/drawable-xhdpi/.

TheWanderer
  • 16,775
  • 6
  • 49
  • 63
  • Or, it is available in `Android\platforms\android-28\data\res\drawable\btn_default_transparent.xml` in my side (platform folder of downloaded SDK). This seems to be the best way to do that +1 BTW. – ʍѳђઽ૯ท Sep 10 '18 at 13:59
  • 1
    @ʍѳђઽ૯ท that's the XML, but it references some nine-patches. – TheWanderer Sep 10 '18 at 13:59
  • Of course with some `styles` codes which is located in : `Android\platforms\android-28\data\res\values\styles.xml` – ʍѳђઽ૯ท Sep 10 '18 at 14:01