Android:聚焦时改变风格

标签 android layout focus

我有这个自定义布局:

- LinearLayout
    - FrameLayout
        - ImageView
    - TextView

此布局对点击事件使用react(使用 LinearLayout.setOnClickListener()),并在布局 XML 文件中使用 android:focusable="true" 使其可聚焦。如果您使用触摸屏,这一切都很好,但我考虑的是那些不经常使用触摸屏并且更喜欢导航键或者甚至可能没有触摸屏的用户。这些用户将无法看到 ViewGroup 何时获得焦点(尽管它可以使用键盘获得焦点)。

我的问题是:当它获得焦点时我如何更改该布局(我需要更改 ImageViewandroid:background)?我想我可以使用 LinearLayout.setOnFocusChangeListener(),但我想也许有更好的方法,只使用 XML 文件。

最佳答案

给一些东西(LinearLayout?)一个背景图片,它是一个StateListDrawable (带有 <selector> 根元素的可绘制 XML)。也许在正常情况下只使用透明颜色,但为 android:focused="true" 使用其他颜色案件。然后,当它获得焦点时,背景会自动改变。

关于Android:聚焦时改变风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1572868/

相关文章:

android - 有什么方法可以从 .c 和 .h 文件生成 JNI 文件?

java - 获取 JFrame 中 JTextField 的坐标

swift - 如何处理 tvOS Remote 中的菜单按钮操作

android - 通过蓝牙发送对象或两个字符串?

Android 数据库错误 - getWriteableDatabase

java - Android GridLayout 中将图像拉伸(stretch)至屏幕大小

html和css布局问题

css - 如何防止在 Chrome 中聚焦时显示隐藏元素?

WPF 弹出选项卡键错误

java - 多个图像上传代码不起作用。我缺少什么?