在listview中展开按钮的可触摸区域的正确(或可能是最方便)方法是什么?
当我第一次在Google云端硬盘应用中看到这样的扩展区域时,我会使用自定义按钮完成。
我能够很容易地复制这种效果。
我使用简单的drawable:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true">
<shape>
<solid android:color="#ff33B5E5" />
</shape>
</item>
<item>
<shape>
<solid android:color="#00000000" />
</shape>
</item>
</selector>
刚才我遇到了touchdelegate,但对于这么简单的任务来说,这似乎是一种过于复杂的方式。使用TouchDelegates是否有任何积极因素,还是仅仅是个人品味?
答案 0 :(得分:1)
TouchDelegate
是扩展View
的触摸区域(在其当前边界之外)的一种方式,因此用户可以更轻松地对该窗口小部件进行操作(例如,它会有意义扩展那个非常小的恒星的触摸区域。
在您发布的图片中,您有一个简单的Button
,其中TouchDelegate
没有意义,因为它足以让用户采取行动。
答案 1 :(得分:0)
将您的按钮置于透明相对布局或线性布局中。设置按钮android:clickable= false
和布局android:clickable= true
。所以当你点击按钮时,布局将捕获点击监听器。现在您可以将布局的drawable应用为选择器xml。你不需要一个形状,只需使用颜色并在state_pressed或state_focused或类似的东西上更改它。