我想让 AndroidListView
有一段时间不可点击,直到我AysncTask
完成。
所以我用
lv.setClickable(false);
但它不起作用。ListView
仍然需要点击。需要帮忙。
对我有用的是在 XML 中为我的列表项设置两个属性。我设置clickable="false"
和focusable="true"
。所以我的每个列表项都在膨胀一个类似于这个的 XML 文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="false"
android:focusable="true" >
<!-- Children here -->
</LinearLayout>
我不确定为什么会这样,尽管这是我的猜测:
只使用 clickable 属性是行不通的,因为虽然 LinearLayout 不可点击,但它里面的子元素仍然是可点击的。然后孩子们得到点击事件但不使用它并将其转发到LinearLayout。
通过使 LinearLayout 可聚焦,它现在将接受单击事件,然后将其删除,因为它不可单击。
希望这可以帮助。如果有人确切知道为什么这种方法有效,请加入。
试试这个:
lv.setEnabled(false);
编辑:好的,对不起我的错。
我认为问题在于它不是您单击的 ListView,而是代表 ListView 中每个项目的 View。所以试试这个:
View itemView = lv.findViewTraversal(id_of_your_view);
itemView.setClickable(false);
我希望这行得通。
setFocusable
/setEnabled
方法吗?if(!mWorking){
mWorking = true;
//do the job...
}
我希望这能帮到您