我有一个自定义游标适配器来填充片段中的列表视图。
我想设置列表视图项中某些元素的可见性,具体取决于该项是否是列表中的第一个可见元素。是否可以在Cursor适配器的bindView()
方法中获取该信息?
答案 0 :(得分:3)
适配器的目的计划:
结论:适配器不知道它所创建的视图将在何处显示。
然而,ListView
确实知道这一点,这可能是你实现这一目标的唯一方法。
让您入门的示例代码:
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
int previousFirst = -1;
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (previousFirst != firstVisibleItem) {
previousFirst = firstVisibleItem;
TextView textView = (TextView) view.findViewById(R.id.title);
if (textView != null) textView.setText("First: " + firstVisibleItem);
}
}
});
此代码出现问题:
ListView不包含在内部自定义第一个可见项的选项,这就是您必须使用所有这些脏黑客的原因。但是,有可能:)。我让你自己克服这些问题。
祝你好运!