首页 文章 精选 留言 我的

精选列表

搜索[表格],共6089篇文章
优秀的个人博客,低调大师

html--表格高亮显示

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script type="text/javascript"> function changeColor(id,flag){ if(flag=="over"){ document.getElementById(id).style.backgroundColor="red"; }else if(flag=="out"){ document.getElementById(id).style.backgroundColor="white"; } } </script> </head> <body> <table border="1px" width="100px" height="100px" align="center"> <thead> <tr onmouseover="changeColor('t1','over')" onmouseout="changeColor('t1','out')" id="t1"> <th>d</th> <th>dx</th> </tr> </thead> <tbody> <tr onmouseover="changeColor('t2','over')" onmouseout="changeColor('t2','out')" id="t2"> <td>s1</td> <td>s2</td> </tr> <<tr onmouseover="changeColor('t3','over')" onmouseout="changeColor('t3','out')" id="t3"> <td>s3</td> <td>s4</td> </tr> </tbody> <table> </body> </html>

优秀的个人博客,低调大师

android:TableLayout表格布局详解

1、TableLayout简介 2、TableLayout行列数的确定 3、TableLayout可设置的属性详解 4、一个包含4个TableLayout布局的实例及效果图 一、Tablelayout简介 Tablelayout类以行和列的形式对控件进行管理,每一行为一个TableRow对象,或一个View控件。 当为TableRow对象时,可在TableRow下添加子控件,默认情况下,每个子控件占据一列。 当为View时,该View将独占一行。二、TableLayout行列数的确定 TableLayout的行数由开发人员直接指定,即有多少个TableRow对象(或View控件),就有多少行。 TableLayout的列数等于含有最多子控件的TableRow的列数。如第一TableRow含2个子控件,第二个TableRow含3个,第三个TableRow含4个,那么该TableLayout的列数为4. 三、TableLayout可设置的属性详解 TableLayout可设置的属性包括全局属性及单元格属性。 1、全局属性也即列属性,有以下3个参数: android:stretchColumns 设置可伸展的列。该列可以向行方向伸展,最多可占据一整行。 android:shrinkColumns 设置可收缩的列。当该列子控件的内容太多,已经挤满所在行,那么该子控件的内容将往列方向显示。 android:collapseColumns 设置要隐藏的列。 示例: android:stretchColumns="0" 第0列可伸展 android:shrinkColumns="1,2" 第1,2列皆可收缩 android:collapseColumns="*" 隐藏所有行 说明:列可以同时具备stretchColumns及shrinkColumns属性,若此,那么当该列的内容N多时,将“多行”显示其内容。(这里不是真正的多行,而是系统根据需要自动调节该行的layout_height) 2、单元格属性,有以下2个参数: android:layout_column 指定该单元格在第几列显示 android:layout_span 指定该单元格占据的列数(未指定时,为1) 示例: android:layout_column="1" 该控件显示在第1列 android:layout_span="2" 该控件占据2列 说明:一个控件也可以同时具备这两个特性。 四、一个包含4个TableLayout布局的实例及效果图 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android " android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="3dip" > <!-- 第1个TableLayout,用于描述表中的列属性。第0列可伸展,第1列可收缩,第2列被隐藏--> <TextView android:text="表1:全局设置:列属性设置" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="15sp" android:background="#7f00ffff"/> <TableLayout android:id="@+id/table1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="0" android:shrinkColumns="1" android:collapseColumns="2" android:padding="3dip"> <TableRow> <Button android:text="该列可伸展"/> <Button android:text="该列可收缩"/> <Button android:text="我被隐藏了"/> </TableRow> <TableRow> <TextView android:text="我向行方向伸展,我可以很长 "/> <TextView android:text="我向列方向收缩,我可以很深"/> </TableRow> </TableLayout> <!-- 第2个TableLayout,用于描述表中单元格的属性,包括:android:layout_column 及android:layout_span--> <TextView android:text="表2:单元格设置:指定单元格属性设置" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="15sp" android:background="#7f00ffff"/> <TableLayout android:id="@+id/table2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="3dip"> <TableRow> <Button android:text="第0列"/> <Button android:text="第1列"/> <Button android:text="第2列"/> </TableRow> <TableRow> <TextView android:text="我被指定在第1列" android:layout_column="1"/> </TableRow> <TableRow> <TextView android:text="我跨1到2列,不信你看!" android:layout_column="1" android:layout_span="2" /> </TableRow> </TableLayout> <!-- 第3个TableLayout,使用可伸展特性布局--> <TextView android:text="表3:应用一,非均匀布局" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="15sp" android:background="#7f00ffff"/> <TableLayout android:id="@+id/table3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*" android:padding="3dip" > <TableRow> <Button android:text="一" ></Button> <Button android:text="两字"></Button> <Button android:text="三个字" ></Button> </TableRow> </TableLayout> <!-- 第4个TableLayout,使用可伸展特性,并指定每个控件宽度一致,如1dip--> <TextView android:text="表4:应用二,均匀布局" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="15sp" android:background="#7f00ffff"/> <TableLayout android:id="@+id/table4" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="*" android:padding="3dip" > <TableRow> <Button android:text="一" android:layout_width="1dip"></Button> <Button android:text="两字" android:layout_width="1dip"></Button> <Button android:text="三个字" android:layout_width="1dip"></Button> </TableRow> </TableLayout> </LinearLayout> 说明:第4个TableLayout里的均匀布局的均匀效果是有限的。其有限性体现在,当该行有N列,则每列的控件内容不能多于1/N。 效果图如下: 本文转自 一点点征服 博客园博客,原文链接: http://www.cnblogs.com/ldq2016/p/6236222.html ,如需转载请自行联系原作者

优秀的个人博客,低调大师

iOS开发-UITableView表格优化

之前的一篇文章大概讲述了一下UITableView的使用,UITableView在iOS的地位和ListView在Android中的地位基本上算是不相上下,关于ListView的优化网上的也有很多文章。UITableView苹果公司本身就已经优化了其中的功能,不管你有多少数据,每次加载的时候只是加载当前页面的数据,以免造成不必要的内存占用。一个非常常见的优化就是使用Identifier,也就是唯一标示,将页面中不用的对象放在缓存池中,如果有新的对象出现从缓存池中取出。 页面布局 页面布局还是跟上篇文章一样,一个TableView: 不过需要额外的工作的时本次暂时的是服装信息,通过弹框修改服装的价格,需要新建一个服装类,实现UIAlertViewDelegate协议,头文件中的声明: 1 2 3 @interface ViewController : UIViewController <UITableViewDataSource,UITableViewDelegate,UIAlertViewDelegate> @property (weak, nonatomic ) IBOutlet UITableView *tableView; @end 服装类的定义: 1 2 3 4 5 6 7 8 9 @interface Dress : NSObject @property (strong, nonatomic ) NSString *dressName; @property (strong, nonatomic ) NSString *dressDetial; @property (strong, nonatomic ) NSString *dressImage; @end 优化与实现 优化之前先实现一些必要的功能,以及一些方法的使用,上篇文章只是涉及了其中的一部分,为了更好的理解,可以先看下实现的效果: 定义存储数据的数组: 1 2 3 4 5 6 7 @interface ViewController () { NSArray *imageArr; NSArray *dressArr; NSMutableArray *dressList; } @end 初始化数据: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 - ( void )viewDidLoad { [ super viewDidLoad]; // Do any additional setup after loading the view. imageArr=[[ NSArray alloc]initWithObjects:@ "dress1.jpeg" ,@ "dress2.jpg" ,@ "dress3.jpg" , nil ]; dressArr=[[ NSArray alloc]initWithObjects:@ "七匹狼" ,@ "森马" ,@ "杰克琼斯" ,@ "美特斯邦威" ,@ "以纯" ,@ "真维斯" ,@ "海南之家" , nil ]; dressList=[ NSMutableArray arrayWithCapacity:30]; for ( NSInteger i=0; i<30; i++) { Dress *dress=[[Dress alloc]init]; NSInteger imageRandom=arc4random_uniform(3); NSInteger dressRandom=arc4random_uniform(7); NSInteger price=arc4random_uniform(1000)+100; dress.dressImage=imageArr[imageRandom]; dress.dressName=dressArr[dressRandom]; dress.dressDetial=[ NSString stringWithFormat:@ "促销价:%ld" ,( long )price]; [dressList addObject:dress]; } } 设置行数: 1 2 3 - ( NSInteger )tableView:(UITableView *)tableView numberOfRowsInSection:( NSInteger )section{ return [dressList count]; } 设置分组: 1 2 3 - ( NSInteger )numberOfSectionsInTableView:(UITableView *)tableView{ return 1; } 设置单元格内容,通过reuseIdentifier设置重用的单元格,dequeueReusableCellWithIdentifier取出可以重用的单元格: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:( NSIndexPath *)indexPath{ static NSString *flag=@ "cacheCell" ; //生成唯一的标记 UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:flag]; if (cell== nil ) { //设置需要显示详情的样式 cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:flag]; } Dress *dress=dressList[indexPath.row]; UIImage *image=[UIImage imageNamed:dress.dressImage]; [cell.imageView setImage:image]; [cell.imageView setFrame:CGRectMake(0, 0, 80, 50)]; [cell.textLabel setText:dress.dressName]; //设置展示小箭头 [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; //设置Tag // [cell setTag:indexPath.row]; [cell.detailTextLabel setText:dress.dressDetial]; NSLog (@ "获取更新之后的行:%ld" ,indexPath.row); return cell; } 选中行之后的弹框设置: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 - ( void )tableView:(UITableView *)tableView didSelectRowAtIndexPath:( NSIndexPath *)indexPath{ UIAlertView *alterView=[[UIAlertView alloc] initWithTitle:@ "服装价格:" message: nil delegate: self cancelButtonTitle:@ "取消" otherButtonTitles:@ "修改" , nil ]; [alterView setAlertViewStyle:UIAlertViewStylePlainTextInput]; //选中的Cell UITableViewCell *cell=[tableView cellForRowAtIndexPath:indexPath]; UITextField *textField=[alterView textFieldAtIndex:0]; //设置修改的服装信息 [textField setText:cell.detailTextLabel.text]; [textField setTag:indexPath.row]; [alterView show]; } UIAlterView中的点击事件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 - ( void )alertView:(UIAlertView *)alertView clickedButtonAtIndex:( NSInteger )buttonIndex{ if (buttonIndex==1) { UITextField *textField=[alertView textFieldAtIndex:0]; NSArray *selectedRow=[ self .tableView indexPathsForSelectedRows]; NSIndexPath *indexPath=selectedRow[0]; Dress *dress=dressList[indexPath.row]; dress.dressDetial=textField.text; NSLog (@ "%@---%ld" ,textField.text,( long )indexPath.row); [ self .tableView reloadRowsAtIndexPaths:selectedRow withRowAnimation:UITableViewRowAnimationRight]; } } 设置行高: 1 2 3 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:( NSIndexPath *)indexPath{ return 50; } 关于UITable的优化: 1.最常用的就是不重复生成单元格,很常见,很实用; 2.使用不透明的视图可以提高渲染速度,xCode中默认TableCell的背景就是不透明的; 3.如果有必要减少视图中的条目,本文中设置textLabel,detialTextLabel,imageView,accessoryType; 4.更新条目的时候不要整体更新,更新选中的即可,建议reloadRowsAtIndexPaths,而不是使用reloadData; 本文转自Fly_Elephant博客园博客,原文链接:http://www.cnblogs.com/xiaofeixiang/p/4248066.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册