Ich wollte den Abstand zwischen den Aktionselement-Symbolen reduzieren, die der ActionBar hinzugefügt wurden. Gibt es eine Möglichkeit, das zu tun?
Funktioniert nicht für mich in API-Level 11. Funktioniert in API-Level 14+.
Ich wollte den Abstand zwischen den Aktionselement-Symbolen reduzieren, die der ActionBar hinzugefügt wurden. Gibt es eine Möglichkeit, das zu tun?
Verwenden Sie einen benutzerdefinierten android:actionButtonStyle.
@style/ActionButtonStyle
und hier ist die Magie:
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
Normalerweise ist die minWidth auf 56 dip eingestellt.
Um mit älteren API-Versionen zu arbeiten, müssen wir auch @style/ActionButtonStyle festlegen.
Bitte beachten Sie, dass das Festlegen von android:minWidth auf 0 in einigen Situationen zu Abstürzen führen kann, wenn EditText für längere Zeit gedrückt wird. (auf einigen beliebten Geräten wie dem SGSII)
Für SDK-Versionen 17+ sollten Sie die Eigenschaften paddingStart und paddingEnd verwenden. Wenn Sie minSdkVersion < 17 haben, müssen Sie verschiedene Styles für jede Version verwenden, so wie hier:
res/values/styles.xml :
@style/ActionButtonStyle
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
res/values-v17/styles.xml :
@style/ActionButtonStyle
<item name="android:minWidth">0dip</item>
<item name="android:paddingStart">0dip</item>
<item name="android:paddingEnd">0dip</item>
Dies sollte der richtige Ansatz sein, um das Padding für Geräte ab 17 zu überschreiben. Danke.
Das hat bei mir funktioniert! Falls das hilft, habe ich @style/ActionButtonStyle
einmal innerhalb meines </code> Elements in der Datei <code>res/values/styles.xml</code> hinzugefügt. Dann habe ich die entsprechenden Versionen in beiden <code>styles.xml</code> Dateien hinzugefügt. Android wird die korrekte Definition von <code>@style/ActionButtonStyle</code> je nach Plattformversion auswählen. </x-turndown>
Um meinen vorherigen Kommentar zu korrigieren: Ich habe tatsächlich @style/ActionButtonStyle
hinzugefügt (im Standard styles.xml
und </code> in beiden <code>styles.xml</code> (Standard und v17). Siehe <a href="https://stackoverflow.com/a/30211328/1121497">diese Antwort</a>.</x-turndown>
Dank an Shai für seinen Hinweis, der für mich ziemlich gut funktioniert (auf einem Android 4.0.x Gerät): (meine gesamte style.xml)
<!--
Themenanpassungen, die in neueren API-Ebenen verfügbar sind, können in
res/values-vXX/styles.xml stehen, während Anpassungen, die mit
Abwärtskompatibilität zusammenhängen, hier stehen können.
-->
<!-- Alle Anpassungen, die NICHT spezifisch für eine bestimmte API-Ebene sind, können hier stehen. -->
<item name="android:actionButtonStyle">@style/ActionButtonStyle</item>
<item name="android:minWidth">0dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
Um ältere Versionen mit AppCompat zu unterstützen, benötigen Sie nichts weiter als dies:
In Ihrem Anwendungs-App-Theme:
@style/ActionButtonStyle
und erstellen Sie einen Stil in style.xml
<item name="android:minWidth">0dip</item>
<item name="android:maxWidth">50dip</item>
<item name="android:paddingLeft">0dip</item>
<item name="android:paddingRight">0dip</item>
Das war's. Sie sind fertig.
Um es in v17 und höher zum Laufen zu bringen, habe ich auch die res/values-v17/styles.xml
Version mit paddingStart
und paddingEnd
hinzugefügt, wie pedrocas Antwort vorschlägt.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
1 Stimmen
Die beste Antwort scheint für mich ziemlich gut zu sein - gibt es einen Grund, warum sie nicht akzeptiert wurde?