从历史上看,Android按钮在默认情况下始终可聚焦,至少它们具有状态列表。
如果现在使用string | undefined
-> Widget.AppCompat.Button.Colored
-> Base.Widget.AppCompat.Button.Colored
样式,则没有定义可聚焦的样式:
android:Widget.Material.Button.Colored
因此,使用Widget.Material.Button.Colored进行键盘导航时,您将不会获得导航焦点,您需要添加自定义样式来扩展该样式并使用以下样式使其起作用:
<!-- Bordered ink button -->
<style name="Widget.Material.Button">
<item name="background">@drawable/btn_default_material</item>
<item name="textAppearance">?attr/textAppearanceButton</item>
<item name="minHeight">48dip</item>
<item name="minWidth">88dip</item>
<item name="stateListAnimator">@anim/button_state_list_anim_material</item>
<item name="focusable">true</item>
<item name="clickable">true</item>
<item name="gravity">center_vertical|center_horizontal</item>
</style>
<!-- Colored bordered ink button -->
<style name="Widget.Material.Button.Colored">
<item name="background">@drawable/btn_colored_material</item>
<item name="textAppearance">@style/TextAppearance.Material.Widget.Button.Colored</item>
</style>
是否有理由为什么不再默认设置此属性?