ListView有三个固定的item该怎么实现
2个回答
展开全部
公司要求做一个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> mList
private 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中固定一个标题了。
先上一下最终的效果图,省得大家迷惘
现在开始说明过程,我使用是一个自定义的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> mList
private 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中固定一个标题了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-29 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注
展开全部
比较合理的直接加一个Header, 用listView addHeaderView就ok了,记得在setAdapter之前
或者
继承baseadapter然后在getview中判断position,如果是前三个就加载固定的布局就好了呀
或者
继承baseadapter然后在getview中判断position,如果是前三个就加载固定的布局就好了呀
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询