下面这个效果是,向下滑动 ListView ,其顶部布局自动显示;向上滑动 ListView ,其顶部的布局自动隐藏。效果如下:
首先这个效果的实现大致需要如下几步:
1. 让其没有 ActionBar ,可在 style.xml 中设置主题样式 Theme.AppCompat.Light.NoActionBar 。
2. 为了让 ListView 的第一个条目不被其顶部的布局所遮住,所以给 ListView 增加了一个头部 HeaderView 。头部的高度正好等于 ActionBar 的高度,高度为:R.dimen.abc_action_bar_default_height_material 。
添加头部的代码:
// 给 ListView 添加一个 HeaderView
View header = new View(this);
header.setLayoutParams(new AbsListView.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
// 高度根据屏幕不一样,大小不一
// (此处可以使用 R.dimen.abc_action_bar_default_height_material)
(int) getResources().getD