摘要:本文将带你了解Android编程之DevsmartLib-Android:Android 上一个水平滑动的 ListView 组件。,希望本文对大家学Android有所帮助
一个横向滑动的l:istview效果,其实很简单,
有几种实现思路:
①:recycleView实现;
②:自定义一个HorizontalListView 继承自listview,控制滑动方向从纵向变为横向;
③:通过HorizontalScrollView嵌套一个GridView来实现。
这里着重讨论一下第三种实现过程,因为,可以完全封装一波,使用的时候,完全copy一波,简单的修改一下横向item的大小尺寸以及item的布局修改就OK了。
话不多说,上代码:
首先,xml布局
<HorizontalScrollView
android:id="@+id/sc"
xmlns:android="//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>12345678910111213141516171819202122232425
其次,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); // 设置列数量=列表集合数
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号