我有一个主布局,其中有一个 listview(id 是“lv”)和一个 textview(id 是 tv_main)。listview 在其行中有 textview(id is tv_item)。当我滚动列表视图时,tv_main 应该将文本替换为第一个列表视图可见项目的文本视图,即 tv_item。我做了所有事情,但问题是当我滚动列表视图时,我无法再次滚动列表视图,直到它停止滚动。我在baseadapter的getView中实现了listview的onscrollListener。谁能告诉我我什么时候错了,我应该怎么做才能解决这个问题。我也在发布我的代码。
lv.setOnScrollListener(new OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView arg0, int scrollState) {
// TODO Auto-generated method stub
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
int post = lv.getFirstVisiblePosition();
System.out.println("position item id " + adapter.getItemId(post));
System.out.println("position " + post);
System.out.println("position view " + view.getId());
System.out.println("position total " + totalItemCount);
if (holder.tv_item.getText().equals(arr[post])) {
System.out.println("position matched");
holder.tv_item.setVisibility(View.INVISIBLE);
tv_main.setText(arr[post]);
adapter.notifyDataSetChanged();
}else {
holder.tv_item.setVisibility(View.VISIBLE);
adapter.notifyDataSetChanged();
}
}
});