您的位置:首页 > 移动开发 > Android开发

PinnedHeaderExpandableListView

2015-02-10 10:03 316 查看
首先它是一个ExpandableListView,但是它的头部可以固定,其次,在它的上面还有一个头部可以来回伸缩

项目地址:https://github.com/singwhatiwanna/PinnedHeaderExpandableListView







接口

public interface OnHeaderUpdateListener {
/**
* 返回一个view对象即可
* 注意:view必须要有LayoutParams
*/
public View getPinnedHeader();

public void updatePinnedHeader(View headerView, int firstVisibleGroupPos);
}

public interface OnGiveUpTouchEventListener {
public boolean giveUpTouchEvent(MotionEvent event);
}




如何使用

让你的activity实现OnHeaderUpdateListener, OnGiveUpTouchEventListener两个接口,分别为PinnedHeaderExpandableListView中如何绘制和更新固定的头部以及StickyLayout中content何时放弃事件处理。

@Override
public View getPinnedHeader() {
View headerView = (ViewGroup) getLayoutInflater().inflate(R.layout.group, null);
headerView.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

return headerView;
}

@Override
public void updatePinnedHeader(View headerView, int firstVisibleGroupPos) {
Group firstVisibleGroup = (Group) adapter.getGroup(firstVisibleGroupPos);
TextView textView = (TextView) headerView.findViewById(R.id.group);
textView.setText(firstVisibleGroup.getTitle());
}

@Override
public boolean giveUpTouchEvent(MotionEvent event) {
if (expandableListView.getFirstVisiblePosition() == 0) {
View view = expandableListView.getChildAt(0);
if (view != null && view.getTop() >= 0) {
return true;
}
}
return false;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息