gpt4 book ai didi

android - 单击后 onListItemClick 停止工作

转载 作者:行者123 更新时间:2023-11-30 04:06:18 26 4
gpt4 key购买 nike

最后编辑我在这里找到解决方案的问题:http://code.google.com/p/android/issues/detail?id=3414#c27

原帖我有一个 ListView(实际上是一个 ListFragment),当我点击它时我想展开一个对象,并在第二次点击时再次折叠它。

这是我的 onListItemClick

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
//mAdapter.toggleItem(id); // removed this

ListView list = getListView();
int start = list.getFirstVisiblePosition();
for (int i = start, j = list.getLastVisiblePosition(); i <= j; i++) {
Cursor item = (Cursor) list.getItemAtPosition(i);
if (id == item.getLong(item.getColumnIndex(ItemColumns._ID))) {
View view = list.getChildAt(i - start);
ViewStub stub = (ViewStub) view.findViewById(R.id.stub);
// View inflated;
if (stub.getVisibility() == View.VISIBLE)
stub.setVisibility(View.GONE);
else
stub.inflate();
// list.getAdapter().getView(i, view, list);
// break;
}
}

}

它有效,但它只触发一次。一旦 ListItem 展开,onListItemClick 将不会再次触发。知道为什么吗?

最好的

马库斯

编辑: 这是实际的行:stub.inflate();禁用点击事件

EDIT2:我发现问题是由于 ViewStub

看起来像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#CC0000"
android:orientation="vertical">


<SeekBar android:id="@+id/progress"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>

</LinearLayout>

LinearLayout 不会隐藏原始的 listItem。但是,如果我删除搜索栏,效果会很好。

最佳答案

如果你的 ListView 包含一个可以窃取焦点的控件(在你的情况下是 Seekbar),你只需要让它不可聚焦

<SeekBar
android:focusable="false" />

关于android - 单击后 onListItemClick 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11600371/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com