【问题标题】:Android ListView partial pressable areasAndroid ListView 部分可按区域
【发布时间】:2010-01-17 04:15:51
【问题描述】:

我想创建一个 ListView 项目布局,我可以在其中触摸行项目的某些部分。这类似于 2.0 的 Contacts Call Log 的行为,我可以点击绿色电话标志来发起呼叫或点击来电详细信息以获取有关联系人的更多信息。

我不需要仅行为实现。我已经知道将 OnClickListeners 绑定到我想要捕获新闻的行项目部分。我真正的问题是,当用户按下屏幕的某个区域时,UI 在某些情况下没有正确反应。 IE:如果他们单击绿色电话图标,则只有电话周围的框会突出显示为按下。按下名称将突出显示该区域。

我查看了联系人应用程序的源代码,但它非常复杂,并且我能够取得一些成功我遇到了源代码引用了未在 SDK 本身中公开的 Drawable 和资源的问题。

我想要一个不依赖android内部资源的合理实现。或者至少有一些指向正确方向的指针。

我正在寻找一种解决方案,不仅可以使用按键,还可以使用 5 向方向键盘。

这是一个显示我在说什么的图形。


(来源:the-gadgeteer.com

【问题讨论】:

    标签: android listview touch


    【解决方案1】:

    看起来就像when setting up each list rownewView 方法中他们为绿色call_icon 设置了onClickListener。绑定视图时,电话号码通过View.setTag() 方法添加到call_icon

    然后,在onClick handler 中,电话号码被提取,电话呼叫Intent 被触发。

    列表行上的所有其他按键都通过通常的方式处理 - onListItemClick 方法。

    【讨论】:

    • 我的行为正常。我确实使用标签来确定如何正确操作和绑定 OnClickListener。问题是当用户在所有情况下正确按下小部件时,我都无法显示黄橙色背景。特别是当他们使用 5 键方向键时,文本按预期变黑,但背景保持黑色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    相关资源
    最近更新 更多