我在我的 Android 应用程序中使用 material
库中的 Chip
组件。它是一个 Action 芯片,里面有一个图标和一个文本。重点是我需要在文本顶部添加一些填充,以便将其降低一点。
我尝试向芯片添加 textAppearance
样式,但找不到任何样式项来完成我需要的操作。如何做到这一点?!
<com.google.android.material.chip.Chip
android:id="@+id/chip"
android:layout_width="wrap_content"
app:chipIcon="@drawable/satisfied"
app:chipIconTint="#444"
android:layout_height="wrap_content"
android:text="my text!"
android:textAppearance="@style/Widget.App.Chip" />
<style name="Widget.App.Chip" parent="Widget.MaterialComponents.Chip.Action">
<item name="android:textSize">14dp</item>
<item name="android:fontFamily">@font/xyz</item>
<item name="android:textStyle">bold</item>
// what item is needed to achieve top padding?!
</style>
最佳答案
很简单:你不能。 Chip
按原样设计,它扩展了 AppCompatCheckBox
和进一步的 TextView
(doc HERE )。所以左侧和/或右侧的这些图标是 compound drawables ,而不是分隔 View
(例如 ImageView
),因此您设置为 Chip
的每个填充都会向文本和所有图标添加填充(如这是一个View
)。出于您的目的,您必须创建自己的自定义 View
,最简单的方法可能是使用子项创建水平 LinearLayout
:TextView
和 ImageView
位于其左侧和右侧,然后您可以仅为文本设置额外的填充
关于android-为 Chip 文本添加顶部填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63918448/