Ответ 1
borderlessButtonStyle доступен только на уровне API 11 или выше.
Я хотел бы настроить некоторые без рамки ImageButtons. Чтобы избежать дублирования кода, я использую styles.xml
:
<style name="EditNotesButton" parent="?android:attr/borderlessButtonStyle">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
<item name="android:scaleType">fitCenter</item>
</style>
Однако возникает следующая ошибка:
Error retrieving parent for item: No resource found that matches the given name '?android:attr/borderlessButtonStyle'.
Есть ли способ наследовать borderlessButtonStyle?
borderlessButtonStyle доступен только на уровне API 11 или выше.
Для AppCompat вы можете наследовать от родительского стиля:
<style name="MyBordelessButtonStyle" parent="@style/Widget.AppCompat.Button.Borderless">
<item name="android:textSize">@dimen/<your size></item>
<!-- other items here -->
</style>
На основе исходного кода
Вы не можете наследовать атрибут, вам нужно наследовать стиль.
Выберите стиль без рамки, который соответствует вашей теме для наследования. Все внутренние стили Android можно найти на http://developer.android.com/reference/android/R.style.html
Например, ваше приложение использует тему Holo Light (укажите в AndroidManifest.xml), тогда вы должны наследовать стиль Widget.Holo.Light.Button.Borderless.Small.
<style name="EditNotesButton" parent="@android:style/Widget.Holo.Light.Button.Borderless.Small">
<item name="android:layout_width">25dp</item>
<item name="android:layout_height">25dp</item>
<item name="android:scaleType">fitCenter</item>
</style>
Вы можете использовать этот стиль вместо API 11 и выше:
<style name="EditNotesButton" parent="android:Widget.Holo.Button.Borderless" />
Я думаю, что вы не можете наследовать таким образом. Попробуйте следующее:
<style name="EditNotesButton" parent="@android:style/Widget">
<!-- This will cause borderless button -->
<item name="android:background">@android:drawable/list_selector_background</item>
...
</style>