Android 表格HorizontalScrollView+ListView
<strong><span style="font-size:24px;">数据准备:</span></strong>
[["颜色","序号","商机阶段","商机数量","商机转化率"],["1","胜芳","152,002","1223","22"],["2","B2B平台","8,775","22","323"],["3","峰闵","2,000","232","43242"],["4","扬宇","11","12312","232"]
]
自定义listview(保证在scroller中能展示,解决冲突)
public class ListViewInScroller extends ListView {public ListViewInScroller(Context context) {super(context); }public ListViewInScroller(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr); }public ListViewInScroller(Context context, AttributeSet attrs) {super(context, attrs); }/**注释:解决只显示一行的问题 */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int expandSpec = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 统计信息表格展示控件 --> <HorizontalScrollView android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:fillViewport="true" android:visibility="invisible"> <com.xzjmyk.pm.activity.ui.erp.view.ListViewInScroller android:id="@+id/lv_grid_dispaly" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:cacheColorHint="#00000000" android:divider="@drawable/scanframeline" /> </HorizontalScrollView> </LinearLayout>
适配器类:
适配器的布局文件没有元素:
R.layout.list_item_empty
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ly_top_view" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > </LinearLayout>
public class HListViewAdapter extends BaseAdapter {private Context ct; private LayoutInflater inflater; private ArrayList<ArrayList<String>> lists; public HListViewAdapter(Context context, ArrayList<ArrayList<String>> lists) {super(); this.lists = lists; this.ct = context; inflater = LayoutInflater.from(context); }@Override public int getCount() {return lists != null ? lists.size() : 0; }@Override public Object getItem(int arg0) {return arg0; }@Override public long getItemId(int arg0) {return arg0; }@SuppressWarnings("deprecation")@Override public View getView(int index, View view, ViewGroup arg2) {ArrayList<String> list = lists.get(index); TextView[] views = new TextView[list.size()]; if (view == null) {view = inflater.inflate(R.layout.list_item_empty, null); LinearLayout topview = (LinearLayout) view.findViewById(R.id.ly_top_view); //根部布局 LinearLayout ly_grid = new LinearLayout(ct); LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); ly_grid.setLayoutParams(lp); ly_grid.setOrientation(LinearLayout.HORIZONTAL); //水平线条 View horizontal = new View(ct); ViewGroup.LayoutParams hp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, CommonUtil.dip2px(ct, 1)); horizontal.setLayoutParams(hp); horizontal.setBackground(ct.getResources().getDrawable(R.drawable.filemanagermenubg_w)); /**@注释:创建textview */ for (int i = 0; i < list.size(); i++) {//垂直线条 View vertical = new View(ct); ViewGroup.LayoutParams vp = new ViewGroup.LayoutParams(CommonUtil.dip2px(ct, 1), ViewGroup.LayoutParams.MATCH_PARENT); vertical.setLayoutParams(vp); vertical.setBackground(ct.getResources().getDrawable(R.drawable.domo_toolbar_bg)); TextView tView = new TextView(ct); LinearLayout.LayoutParams tp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT); if (i == 0) {tView.setWidth(CommonUtil.dip2px(ct, 55)); } else {tView.setWidth(CommonUtil.dip2px(ct, 70)); }tView.setMaxLines(8); //tView.setLines(1); //tView.setBackgroundColor(ct.getResources().getColor(R.color.red)); tView.setLayoutParams(tp); tView.setGravity(Gravity.CENTER); tView.setPadding(CommonUtil.dip2px(ct, 10), CommonUtil.dip2px(ct, 10), CommonUtil.dip2px(ct, 10), CommonUtil.dip2px(ct, 10)); tView.setTextColor(ct.getResources().getColor(R.color.black)); tView.setTextSize(CommonUtil.dip2px(ct, 8)); views[i] = tView; //ly_grid.setGravity(Gravity.CENTER); ly_grid.addView(vertical); ly_grid.addView(tView); }topview.addView(ly_grid); topview.addView(horizontal); view.setTag(views); } else {views = (TextView[]) view.getTag(); }view.setBackgroundColor(Color.WHITE); for (int i = 0; i < views.length; i++) {views[i].setText(list.get(i)); views[i].setTextColor(ct.getResources().getColor(R.color.black)); }if (index == 0) {//view.setBackgroundResource(R.color.head_bg); } else {if (index % 2 != 0) {view.setBackgroundColor(Color.argb(250, 255, 255, 255)); } else {view.setBackgroundColor(Color.argb(250, 224, 243, 250)); }}return view; } }
Activity 核心代码:
@ViewInject(R.id.layout) private HorizontalScrollView layout; @ViewInject(R.id.lv_grid_dispaly) private ListViewInScroller lv_grid_dispaly;
private HListViewAdapter hl_adapter; private ArrayList<ArrayList<String>> gridlists = new ArrayList<ArrayList<String>>(); private String gridData = "[[\"颜色\",\"序号\",\"商机阶段\",\"商机数量\",\"商机转化率\"],[\"1\",\"胜芳\",\"152,002\",\"1223\",\"22\"],[\"2\",\"B2B平台\",\"8,775\",\"22\",\"323\"],[\"3\",\"峰闵\",\"2,000\",\"232\",\"43242\"],[\"4\",\"扬宇\",\"11\",\"12312\",\"232\"]]";
gridlists = (ArrayList) JSON.parseArray(gridData, ArrayList.class); hl_adapter = new HListViewAdapter(this, gridlists); lv_grid_dispaly.setAdapter(hl_adapter);
展示效果:
Android 表格HorizontalScrollView+ListView相关推荐
- Android 用HorizontalScrollView实现ListView的Item滑动删除
原理: 利用HorizontalScrollView可以横向滚动的特点实现滑动,根据动态的设置要展示的区域宽度,使得其余选项操作被挤出屏幕外面,从而实现单条滑动菜单的样式. 实现步骤: 实现Listv ...
- Android 用HorizontalScrollView实现ListView的Item滑动删除 ,滑动错乱 冲突
用HorizontalScrollView实现类似微信的滑动删除 测试于:Android2.2+ 对于Android来说按键操作已经在减少,越来越多的手势操作层出不穷,今天介绍一款LIstView的I ...
- Android 自定义ScrollView ListView 体验各种纵向滑动的需求
1.概述 群里的一个哥们有个需求是这样的:问题:主要功能就是:1.循环的一个滑动:2.每次滑动结束,保持每个Item的完整.然后我当时给他写了个Demo,所有代码都在Activity里面,后期看来其太 ...
- Android中HorizontalScrollView的使用
由于移动设备物理显示空间一般有限,不可能一次性的把所有要显示的内容都显示在屏幕上.所以各大平台一般会提供一些可滚动的视图来向用户展示数据.Android平台框架中为我们提供了诸如ListVi ...
- Android 自定义 HorizontalScrollView 横向滑动效果
自从Gallery被谷歌废弃以后,Google推荐使用ViewPager和HorizontalScrollView来实现Gallery的效果.的确HorizontalScrollView可以实现Gal ...
- Android重绘ListView高度
Android重绘ListView高度 经常会有这样需求,需要ListView默认将所有的条目显示出来,这就需要外层使用ScrollView,ScrollView里面放置一个重绘高度的ListView ...
- android 分组 listview,Android实现的ListView分组布局改进示例
本文实例讲述了android实现的listview分组布局改进方法.分享给大家供大家参考,具体如下: 由于是在网上转载的一篇文章,在这里就不多说废话了,首先看一下最终的效果图: 然后是实现该listv ...
- android中设置ListView的选中的Item的背景颜色(附源码)
http://longyi-java.iteye.com/blog/976067 ListView中没有默认的选择颜色,只有选择Item后的焦点颜色,鼠标点击时Item有颜色,放开鼠标后颜色也就没有了 ...
- [android] 练习使用ListView(一)
练习使用ListView,BaseAdapter,先展示文字的,再练习图片的 MainActivity.java package com.android.test;import android.app ...
最新文章
- carthage update --no-use-binaries --platform mac,ios
- matlab相关的数字信号,数字信号处理及其MATLAB实现.ppt
- android 实现定时任务,Android 实现定时任务的过程详解
- 抽象类和接口类的区别
- ASP.NETCore编程实现基本认证
- python相同怎么写_这两个index相同的dataframe我想把他们merge,怎么写?
- uni app 录音结束监听_全新重构,uni-app实现微信端性能翻倍
- 使用 file_get_contents 获取网站信息报错failed to open stream: HTTP request failed!
- 数据库工作笔记003---在Centos中导入sql文件的方法
- java在线支付---05_在线支付_编写用于准备请求数据的Servlet
- Java判断Class变量是什么类型
- 2012年CIO最关心的十大安全问题
- ubuntu14.04 Nvidia 驱动和cuda安装(转)
- 0603封装 1%贴片电阻代码表示的阻值
- flash cs6汉化成中文,附汉化包
- ios版的chrome如何保存网页为PDF
- 误码率matlab,关于误码率的问题 急!!!!!
- 紫罗兰永恒花园女性CG模型作品
- u3d 镜面反射的效果
- 1000句英语经典口语
热门文章
- java 支付宝h5网页支付接口,移动端h5网页调用支付宝支付接口
- Oracle数据库基础入门《二》Oracle内存结构
- 大型运输行业实战_day14_1_webserivce简单入门
- 454. 4Sum II
- hicoder - 1068 【RMQ or 线段树】
- 关于vs生成app错误提示,提醒Execution failed for task ':transformClassesWithDexForDebug'.
- mysql数据库死锁 情景一
- 移动端滚动穿透问题完美解决方案
- 解决在Yii2中使用PHPExcel出现Class ‘app\controllers\PHPExcel‘ not found的问题
- [原创]关于javax.servlet.ServletException: File [/loginController/getVerifCode.jsp] not found异常 解决方案