首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView clickable false不起作用

ListView clickable false不起作用
EN

Stack Overflow用户
提问于 2012-07-22 17:38:15
回答 3查看 4.4K关注 0票数 2

我想让Android ListView在一段时间内不可点击,直到我的AysncTask结束。

所以我用了

代码语言:javascript
复制
lv.setClickable(false);

但它不起作用。ListView的点击率仍然很高。需要帮助。

EN

回答 3

Stack Overflow用户

发布于 2013-10-02 12:13:35

对我来说起作用的是在XML中为我的列表项设置两个属性。我设置了clickable="false"focusable="true"。因此,我的每个列表项都在膨胀一个类似于下面的XML文件:

代码语言:javascript
复制
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clickable="false"
    android:focusable="true" >

    <!-- Children here -->

</LinearLayout>

我不确定这到底是为什么,尽管这是我的猜测:

仅使用clickable属性的

  • 不起作用,因为虽然LinearLayout不可单击,但其中的子项仍然可以单击。然后,子节点获得click事件,但不使用它,并将其转发到使LinearLayout可聚焦的LinearLayout.
  • By,它现在将获取click事件,然后删除它,因为它不可单击。

希望这能有所帮助。如果有人知道这种方法为什么有效,请加入进来。

票数 5
EN

Stack Overflow用户

发布于 2012-07-22 17:49:02

试着这样做:

代码语言:javascript
复制
    lv.setEnabled(false);

编辑:好的,对不起,是我的错。

我认为问题不在于你点击的不是ListView,而是代表ListView中每一项的视图。所以试试这个:

代码语言:javascript
复制
View itemView = lv.findViewTraversal(id_of_your_view);
itemView.setClickable(false);

我希望这能行得通。

票数 1
EN

Stack Overflow用户

发布于 2012-07-22 17:56:13

  1. 你有没有尝试过setFocusable / setEnabled方法?
  2. 你可以在你的onItemClick方法中:

if(!mWorking){ mWorking = true; //do the job... }

  1. 您可以尝试实现SimpleOnGestureDetector并覆盖onSingleTapConfirmed方法。谷歌上有很多tuts。

我希望这能对你有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11599177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档