我有这个自定义布局:
- LinearLayout
- FrameLayout
- ImageView
- TextView
此布局对点击事件使用react(使用 LinearLayout.setOnClickListener()
),并在布局 XML 文件中使用 android:focusable="true"
使其可聚焦。如果您使用触摸屏,这一切都很好,但我考虑的是那些不经常使用触摸屏并且更喜欢导航键或者甚至可能没有触摸屏的用户。这些用户将无法看到 ViewGroup
何时获得焦点(尽管它可以使用键盘获得焦点)。
我的问题是:当它获得焦点时我如何更改该布局(我需要更改 ImageView
的 android:background
)?我想我可以使用 LinearLayout.setOnFocusChangeListener()
,但我想也许有更好的方法,只使用 XML 文件。
最佳答案
给一些东西(LinearLayout
?)一个背景图片,它是一个StateListDrawable
(带有 <selector>
根元素的可绘制 XML)。也许在正常情况下只使用透明颜色,但为 android:focused="true"
使用其他颜色案件。然后,当它获得焦点时,背景会自动改变。
关于Android:聚焦时改变风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572868/