Chciałem zmniejszyć odstępy między ikonami akcji, które dodano do paska akcji. Czy istnieje sposób, aby to zrobić?Czy istnieje sposób na zmniejszenie odstępów między ikonami elementów czynności na pasku czynności?
Czy istnieje sposób na zmniejszenie odstępów między ikonami elementów czynności na pasku czynności?
Odpowiedz
Jeśli tworzysz niestandardowy pasek akcji, możesz dodać niestandardowe odstępy między elementami, jeśli chcesz przenieść elementy bliżej siebie, możesz użyć ujemnych wartości dla swoich atrybutów. Jak ten pseudo-kod (w pliku xml układu):
<ImageView
android:layout_marginLeft="-2dp"
Próbowałem tego, ale praca dint :( –
myślę, że może się okazać, że jest to trudne do osiągnięcia bez niemożliwe uzyskanie niezwykle hackish lub po prostu tworząc swój własny ActionBar. See here za to, co wydaje się dość podobne pytanie. Zrobiłem kilka testów samodzielnie nadpisując android: actionButtonStyle, i podczas gdy byłem w stanie przesłonić pewne rzeczy (takie jak tło), odmówił on honorowania jakiegokolwiek rodzaju atrybutów dopełnienia, które określiłem.
Dzięki za link Hankystyles, starałem się przesłonić android: actionButtonStyle, jednak nie był w stanie zmienić tła też. Oto jak ja to robię. "kod" (
użyć niestandardowego androida: actionButtonStyle.
<item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
a magia jest tutaj:
<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
</style>
normalnie MinWidth jest ustawiony na 56 dip.
Nie działa dla mnie. – aaronsnoswell
Dla mnie też! :( –
Nie działa dla mnie na poziomie API 11. Praca na poziomach API 14+. – cprcrack
Dzięki Shai dla jego wskazówka, że działa całkiem dobrze dla mnie (na urządzeniu z systemem Android 4.0.x): (mój cały style.xml)
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
</style>
<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
</style>
Dla wersji SDK 17 + należy użyć właściwości paddingStart i paddingEnd, jeśli masz minSdkVersion < 17 trzeba użyć różnych stylów dla każdej wersji, jak to:
res/wartości/styles.xml:
<item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
</style>
res/wartości-V17/styles.xml:
<item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
<item name="android:minWidth">0dip</item>
<item name="android:paddingStart">0dip</item>
<item name="android:paddingEnd">0dip</item>
</style>
Najlepsza odpowiedź wydaje mi się całkiem dobra - czy istnieje powód, dla którego nie została przyjęta? – andygeers