Gibt es eine Möglichkeit, die vertikale Polsterung oder Höhe des standardmäßigen Chipmaterials zu ändern? Von dem Dokumente Ich sehe, dass es sicherlich eine Möglichkeit gibt, die minimale Höhe einzustellen, aber ich möchte Chips “dünner” machen, wie in diesem Design:
Benutzerdefinierte Höhe oder Polsterung für Android-Chips – Chipgruppenabstand
lidkxx
In den 1.1.0-Alpha*-Versionen werden zusätzliche Abstände für den Chip hinzugefügt. Nach vielen Treffern und Versuchen gelang es mir, diesen Abstand zu entfernen, indem ich Folgendes verwendete:
app:chipMinTouchTargetSize="0dp"
Wenn Sie sich die Klassendatei für Chip ansehen, scheint es, dass sie mit der minimalen Touch-Zielgröße von Android zusammenhängt, also denken Sie daran, bevor Sie dies ändern.
-
Vielen Dank! Das war so ärgerlich und verwirrend.
– Alex
6. November 2019 um 22:21 Uhr
-
Zusätzlich kann man dieses Verhalten erreichen, indem man setEnsureMinTouchTargetSize(false) programmatisch auf dem Chip aufruft.
– Philipp Fahlteich
4. Februar 2020 um 20:06 Uhr
-
Es ist unglaublich, wie Android-Entwickler die Randeinstellung unter einem solchen Namen verbergen können. Vielen Dank!
– Jean d’Arme
1. März 2020 um 21:22 Uhr
-
Danke vielmals! Nach langem Suchen hat Ihre Lösung schließlich funktioniert.
– MRamzan
29. Juni 2020 um 6:09 Uhr
-
UPDATE: nur app:chipMinHeight=”{size}” ist erforderlich, um die Größe des Chips zu ändern.
– Belagerung
19. Januar 2021 um 19:27 Uhr
pgiecek
Um einen Chip dünner zu machen, müssen Sie zwei Eigenschaften anpassen: Chiphöhe und Textgröße.
<style name="ThinnerChip" parent="Widget.MaterialComponents.Chip.Action">
<item name="chipCornerRadius">12dp</item>
<item name="chipMinHeight">24dp</item>
<item name="android:textAppearance">@style/SmallerText</item>
</style>
<style name="SmallerText" parent="TextAppearance.AppCompat.Small">
<item name="android:textSize">11sp</item>
</style>
Wenden Sie dann den Stil wie gewohnt an.
<com.google.android.material.chip.Chip
style="@style/ThinnerChip"
...
/>
Unten sind die Chip-Attribute zum Auffüllen. Hoffentlich kann es Ihnen helfen
Polsterungen
app:chipStartPadding
app:iconStartPadding
app:iconEndPadding
app:textStartPadding
app:textEndPadding
app:closeIconStartPadding
app:closeIconEndPadding
app:chipEndPadding
Für weitere Informationen: Klick hier
-
Entschuldigung, ich war wahrscheinlich nicht zu klar, ich suche nach etwas in den Zeilen textBottomPadding und textTopPadding ODER chipHeight 🙂 oder nach einem schmutzigen Hack, um es zu erreichen.
– lidkxx
7. August 2018 um 10:15 Uhr
-
Es wäre besser, Ihren eigenen Chip mit Hilfe von drawable anzupassen.
– Shahzad Afridi
7. August 2018 um 10:20 Uhr
-
Ja, das werde ich wahrscheinlich am Ende tun, wollte nur sichergehen, dass ich zuerst nichts verpasse.
– lidkxx
7. August 2018 um 10:21 Uhr
-
Ich habe diese Bibliothek von Drittanbietern gefunden: code.hootsuite.com/…
– Shahzad Afridi
7. August 2018 um 10:24 Uhr
-
Wenn Sie benutzerdefinierte machen möchten, dann werfen Sie einen Blick auf diesen Link: devexchanges.info/2017/01/…
– Shahzad Afridi
7. August 2018 um 10:25 Uhr
Dadurch wurden die standardmäßigen vertikalen Polsterungen für mich entfernt:
app:ensureMinTouchTargetSize="false"
Sie können einen benutzerdefinierten Stil verwenden:
<style name="MaterialComponents_Chip_Thin" parent="@style/Widget.MaterialComponents.Chip.Entry">
<item name="chipMinHeight">24dp</item>
<item name="chipMinTouchTargetSize">24dp</item>
<item name="chipIconSize">18dp</item>
<item name="android:textAppearance">@style/TextAppearance.MaterialComponents.Body2_Thin</item>
<item name="shapeAppearanceOverlay">@style/ShapeAppearanceOverlay.MaterialComponents.Chip_Thin</item>
</style>
<style name="ShapeAppearanceOverlay.MaterialComponents.Chip_Thin" parent="">
<item name="cornerSize">12dp</item>
</style>
<style name="TextAppearance.MaterialComponents.Body2_Thin" parent="TextAppearance.MaterialComponents.Body2">
<item name="android:textSize">12sp</item>
</style>
Und wenden Sie es an mit:
<com.google.android.material.chip.Chip
style="@style/MaterialComponents_Chip_Thin"
.../>
-
chipMinTouchTargetSize
ist das, was mir gefehlt hat. Vielen Dank– Subhrajyoti Sen
9. Juli 2020 um 1:42 Uhr
Viraj Patel
Sie müssen die Höhe Ihres Chips einstellen, um ihn “dünner” zu machen.
Überprüfen Sie den folgenden Code:
build.gradle (App)
implementation 'com.google.android.material:material:1.0.0-rc01'
ic_vector_android.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="#FFFFFF"
android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,8 2,8.67 2,9.5v7c0,0.83 0.67,1.5 1.5,1.5S5,17.33 5,16.5v-7C5,8.67 4.33,8 3.5,8zM20.5,8c-0.83,0 -1.5,0.67 -1.5,1.5v7c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5v-7c0,-0.83 -0.67,-1.5 -1.5,-1.5zM15.53,2.16l1.3,-1.3c0.2,-0.2 0.2,-0.51 0,-0.71 -0.2,-0.2 -0.51,-0.2 -0.71,0l-1.48,1.48C13.85,1.23 12.95,1 12,1c-0.96,0 -1.86,0.23 -2.66,0.63L7.85,0.15c-0.2,-0.2 -0.51,-0.2 -0.71,0 -0.2,0.2 -0.2,0.51 0,0.71l1.31,1.31C6.97,3.26 6,5.01 6,7h12c0,-1.99 -0.97,-3.75 -2.47,-4.84zM10,5L9,5L9,4h1v1zM15,5h-1L14,4h1v1z"/>
</vector>
ihr_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#e3e3e3"
android:orientation="vertical"
android:padding="20dp">
<com.google.android.material.chip.ChipGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:chipSpacing="18dp">
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Entry"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:checkable="false"
android:text="KRAKOW"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#636161"
app:chipCornerRadius="10dp"
app:chipIcon="@drawable/ic_vector_android"
app:chipIconSize="14dp"
app:chipIconTint="#636161"
app:chipStartPadding="8dp"
app:chipStrokeColor="#636161"
app:chipStrokeWidth="1dp"
app:closeIconEnabled="false" />
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Entry"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:checkable="false"
android:text="Today"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#ffffff"
app:chipBackgroundColor="#636161"
app:chipCornerRadius="10dp"
app:closeIconEnabled="false" />
<com.google.android.material.chip.Chip
style="@style/Widget.MaterialComponents.Chip.Entry"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:checkable="false"
android:text="Tomorrow"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:textColor="#ffffff"
app:chipBackgroundColor="#636161"
app:chipCornerRadius="10dp"
app:chipIcon="@drawable/ic_vector_android"
app:chipIconSize="14dp"
app:chipStartPadding="8dp"
app:closeIconEnabled="false" />
</com.google.android.material.chip.ChipGroup>
</LinearLayout>
Um den dünneren Chip zu bekommen muss ich folgende Eigenschaften setzen:
android:layout_height="20dp" // Thinner Height
app:chipIconSize="14dp" // Smaller icon size
app:chipStartPadding="8dp" // Add padding to start of icon
app:chipCornerRadius="10dp" // Set Corner radius
-
chipMinTouchTargetSize
ist das, was mir gefehlt hat. Vielen Dank– Subhrajyoti Sen
9. Juli 2020 um 1:42 Uhr
Verwenden Sie setEnsureMinTouchTargetSize(false), um sicherzustellen, dass der Abstand minimal ist.
Chip chip = new Chip(getContext());
chip.setId(selectedWordGroup.id);
chip.setText(selectedWordGroup.getName());
chip.setTag(i);
chip.setCheckable(true);
chip.setCheckedIconVisible(false);
chip.setChecked((mFlashcardSetupActivity.allWordGroups.get(i).getSelected()));
chip.setClickable(true);
chip.setFocusable(true);
chip.setEnsureMinTouchTargetSize(false);
chip.setChipDrawable(ChipDrawable.createFromAttributes(getContext(), null, 0, R.style.CustomChipChoice));
chip.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean selected) {
}
});
mChipGroupGroups.addView(chip);
<com.google.android.material.chip.ChipGroup
android:id="@+id/chip_group_groups"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="4dp"
card_view:chipSpacing="4dp"
>
-
in meinem Fall chip.setEnsureMinTouchTargetSize (false); ist Lösung. Vielen Dank!
– Yoji Yamamoto
23. September um 2:18