Android横向滑动的listview
2017-09-07 09:51
344 查看
一个横向滑动的l:istview效果,其实很简单,有几种实现思路:①:recycleView实现;②:自定义一个HorizontalListView 继承自listview,控制滑动方向从纵向变为横向;③:通过HorizontalScrollView嵌套一个GridView来实现。
这里着重讨论一下第三种实现过程,因为,可以完全封装一波,使用的时候,完全copy一波,简单的修改一下横向item的大小尺寸以及item的布局修改就OK了。
话不多说,上代码:首先,xml布局
<HorizontalScrollView android:id="@+id/sc" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="60dp" android:scrollbars="none" android:layout_margin="0dp" > <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal"> <GridView android:id="@+id/grid" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:numColumns="auto_fit" android:stretchMode="spacingWidthUniform" > </GridView> </LinearLayout> </HorizontalScrollView>
其次,activity中::
:首先当然是findviewbyid找到这个GridView,然后对于这个GridView的控制代码,封装进了一个方法中,再然后定义一个经典的adapter来,就OK了。
//绑定GridView布局 private GridView weekDateGridView=(GridView)findViewById(R.id.gridViewHorizontal); //构建数据源 private List<String> weekDateData=new List<String>(); for (int i = 6; i < 14; i++) { String S=i+2+":00"; weekDateData.add(S); } //定义适配器 private WeekDateHorizontalAdatper horizontalAdatper=new WeekDateHorizontalAdatper(context, weekDateData); //调用控制水平滚动的方法 setHorizontalGridView(weekDateData.size(), weekDateGridView); weekDateGridView.setAdapter(horizontalAdatper); //绑定适配器 weekDateGridView.setAdapter(horizontalAdatper); /** * 水平滚动的GridView的控制 */ private void setHorizontalGridView(int siz, GridView gridView) { int size = siz; // int length = (int) getActivity().getResources().getDimension( // R.dimen.coreCourseWidth); int length=60; DisplayMetrics dm = new DisplayMetrics(); this.getActivity().getWindowManager().getDefaultDisplay() .getMetrics(dm); float density = dm.density; int gridviewWidth = (int) (size * (length) * density); int itemWidth = (int) ((length) * density); @SuppressWarnings("deprecation") LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( gridviewWidth, LinearLayout.LayoutParams.FILL_PARENT); gridView.setLayoutParams(params); // 设置GirdView布局参数,横向布局的关键 gridView.setColumnWidth(itemWidth); // 设置列表项宽 gridView.setHorizontalSpacing(0); // 设置列表项水平间距 gridView.setStretchMode(GridView.NO_STRETCH); gridView.setNumColumns(size); // 设置列数量=列表集合数 }
adapter的定义,很简单,就不赘述了,下面上几张效果图:
相关文章推荐
- Android开发--横向滑动的listview
- Android中实现水平滑动(横向滑动)ListView示例
- Android Listview横向滑动
- Android ListView 横向滑动删除 Item
- Android中实现ListView横向滑动
- android自定义控件--横向滑动的ListView
- Android--Listview横向滑动
- Android_横向滑动菜单, HorizontalScrollView,Fragment,Viewpager结合使用 +pullToRefreshListView
- Android 之 XHorizontalListView横向滑动列表,并默认第一个选中
- 【Android界面实现】解决ScrollView中嵌套Listview,Listview中嵌套Listview显示不完整和滑动冲突的问题
- android中listview滑动变黑的解决办法
- Android横向ListView可以滚动
- android下拉刷新和滑动到底部加载更多,自定义listview
- 今日头条--- 横向滑动菜单----第一个菜单--pulltorefresh+mylistview
- Android Animation动画实战(一): 从布局动画引入ListView滑动时,每一Item项的显示动画
- Android中监听ListView滑动到底部
- Android之ListView的快速滑动模式:fastScrollEnabled以及滑块的自定义
- Android 使用NineOldAndroids实现绚丽的ListView左右滑动删除Item效果
- Android——UI篇:使用pinnedheaderlistview实现联系人头部滑动到顶部定住的功能
- Android腾讯微博客户端开发5:利用FootView实现ListView滑动动态加载实现分页