公司要求做一个gridview形式的三级菜单,要求菜单的每第一级滑动时固定,现在记录下菜单是怎样实现的
先上一下最终的效果图,省得大家迷惘
现在开始说明过程,我使用是一个自定义的PinnedHeaderListView
现在说说PinnedHeaderListView这个如何的使用,这个使用很简单:
1. 把下载的PinnedHeaderListView放到你的项目中去。
2. 在你的部局中直接使用:
<com.test.pinnedheaderlistview.PinnedHeaderListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.test.pinnedheaderlistview.PinnedHeaderListView>
3. ListView加载adapter还是和常规的一样使用。
ProductOneMenuAdapter adapter = new ProductOneMenuAdapter(mContext, mList);
listView.setAdapter(adapter);
4. adapter的使用:adapter继承SectionedBaseAdapter
getItemView是加载你ListView里每个item的视图;
getSectionHeadView是加载你ListView中固定头部的视图;
下面是用法:
public class ProductOneMenuAdapter extends SectionedBaseAdapter { private Context mContext; private ArrayList<listbean> mListprivate int i = 1;private View layout;public ProductOneMenuAdapter(Context mContext, ArrayList<listbean> mList, ) {
this.mContext = mContext;
this.mList = mList;
}
@Override
public Object getItem(int section, int position) {
return null;
}
@Override
public long getItemId(int section, int position) {
return 0;
}
@Override
public int getSectionCount() {
return mList.size(); //固定头部数据的长度
}
@Override
public int getCountForSection(int section) {
return i; //每固定下面数据的长度
}
@Override
public View getItemView(int section, int position, View convertView, ViewGroup parent) {
return convertView;
}
@Override
public View getSectionHeaderView(int section, View convertView, ViewGroup parent) {
return convertView;
}
public View getLayout() {
return layout;
}
}
以上就可以实现在ListView中固定一个标题了。
下面放上我写的一个三级菜单中是加载GridView的小demo -----------ps:还没有写完,写完就同部上来~~~