2.[代码][Java]代码
View headView = getLayoutInflater().inflate(R.layout.head_view, null);
mlist.addHeaderView(headView);
// 悬浮框
diary_mshv = new MineStickyHeaderView(this);
mlist.addHeaderView(diary_mshv);
diary_mshv.setOnFavoriteItemClickListener(new FavoriteTabChangedListener());
stickyHeader_mshv.setOnFavoriteItemClickListener(new FavoriteTabChangedListener());
mlist.setOnScrollListener(new OnScrollListener() {
/**
* scrollState有三种状态,分别是SCROLL_STATE_IDLE、SCROLL_STATE_TOUCH_SCROLL、
* SCROLL_STATE_FLING SCROLL_STATE_IDLE是当屏幕停止滚动时
* SCROLL_STATE_TOUCH_SCROLL是当用户在以触屏方式滚动屏幕并且手指仍然还在屏幕上时
* SCROLL_STATE_FLING是当用户由于之前划动屏幕并抬起手指,屏幕产生惯性滑动时
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
/**
* firstVisibleItem 表示在当前屏幕显示的第一个listItem在整个listView里面的位置(下标从0开始)
* visibleItemCount表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数
* totalItemCount表示ListView的ListItem总数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if (null != diary_mshv) {
if (firstVisibleItem > 0) {
System.out.println(firstVisibleItem);
stickyHeader_mshv.setVisibility(View.VISIBLE);
} else {
stickyHeader_mshv.setVisibility(View.GONE);
}
}
}
});