【发布时间】:2018-06-21 18:02:30
【问题描述】:
由于Android 23,android:foreground XML 属性(和相应的setForeground()method)应该对所有视图可用,而不仅仅是以前的 FrameLayout 实例。
然而,出于某种原因,每当我创建一个继承自 TextView -> View 的 Button 实例时,我似乎根本无法显示前景。
这是一个显示前景的按钮定义示例:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:text="Primary Full Width"
style="@style/Button.Primary" />
这是Button.Primary风格的定义:
<style name="Button.Primary" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_primary_background_selector</item>
<item name="android:foreground">@drawable/button_primary_foreground_selector</item>
<item name="android:textAppearance">@style/TextAppearance.FF.Button</item>
<item name="android:minHeight">80dp</item>
<item name="android:height">80dp</item>
<item name="android:minWidth">200dp</item>
<item name="android:defaultWidth">288dp</item>
<item name="android:maxWidth">400dp</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
<item name="android:gravity">center_vertical|center_horizontal</item>
<item name="android:paddingStart">70dp</item>
<item name="android:paddingEnd">70dp</item>
<item name="android:stateListAnimator">@null</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">end</item>
<item name="android:drawablePadding">10dp</item>
</style>
我已经确认在样式或<Button> 定义中设置foreground 属性不会改变任何内容,无论如何前景都无法显示。背景显示正确,文本也正确显示,只是缺少前景。
我也尝试将前景设置为纯色而不是状态选择器可绘制,但没有成功。
【问题讨论】:
标签: android button textview android-xml