Android Chip自定义高度或填充

lid*_*kxx 5 android material-design android-chips material-components material-components-android

有没有办法改变默认材料的芯片垂直填充或高度?从文档中,我肯定可以找到一种设置最小高度的方法,但是我想使芯片“更薄”,就像这种设计:

在此处输入图片说明

pgi*_*cek 18

为了使 Chip 更薄,您需要调整两个属性:chip height 和 text size。

<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>
Run Code Online (Sandbox Code Playgroud)

然后像往常一样应用样式。

<com.google.android.material.chip.Chip
    style="@style/ThinnerChip"
    ...
    />
Run Code Online (Sandbox Code Playgroud)


Bek*_*Bot 18

这为我删除了默认的垂直填充:

app:ensureMinTouchTargetSize="false"
Run Code Online (Sandbox Code Playgroud)


Opr*_*day 17

下面是用于填充的芯片属性。希望,它可以帮助你

填充物

app:chipStartPadding
app:iconStartPadding
app:iconEndPadding
app:textStartPadding
app:textEndPadding
app:closeIconStartPadding
app:closeIconEndPadding
app:chipEndPadding
Run Code Online (Sandbox Code Playgroud)

更多信息:点击这里


Gab*_*tti 9

您可以使用自定义样式:

  <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>
Run Code Online (Sandbox Code Playgroud)

并应用它:

    <com.google.android.material.chip.Chip
        style="@style/MaterialComponents_Chip_Thin"
        .../>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Pra*_*arg 8

在1.1.0-alpha *版本中,为芯片添加了额外的间距。经过多次尝试,我设法使用以下方法删除了该间距:

app:chipMinTouchTargetSize="0dp"
Run Code Online (Sandbox Code Playgroud)

查看Chip的类文件,它似乎与Android的最小触摸目标大小有关,因此请在更改前考虑一下。

  • 此外,还可以通过以编程方式在芯片上调用 setEnsureMinTouchTargetSize(false) 来实现此行为。 (3认同)

lid*_*kxx 1

有一种非常简单的方法可以实现我想要的:我所需要做的就是在封装的芯片android:layout_height上设置属性ChipGroup

我想这是有道理的,不可能在单个芯片上实现这一点......:>