精华内容
下载资源
问答
  • flutter 项目实战四 列表数据展示

    千次阅读 2019-03-28 14:59:21
    flutter windows开发环境设置 flutter 项目实战一 新建 flutter 项目 flutter 项目实战二 网络请求 flutter 项目实战三 json数据解析以及Gson格式化flutter 项目实战二 网络请求 flutter 项...

    本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用。 逛丢官方网址:https://guangdiu.com/

    flutter windows开发环境设置

    flutter 项目实战一 新建 flutter 项目

    flutter 项目实战二 网络请求

    flutter 项目实战三 json数据解析以及Gson格式化flutter 项目实战二 网络请求

    flutter 项目实战四 列表数据展示

    flutter 项目实战五 item 点击跳转,webview加载

    flutter 项目实战六 drawer侧边栏

    flutter 项目实战七 bottomNavigationBar

    flutter 项目实战八 下拉刷新 上拉加载

    flutter 项目实战九 小时风云榜

    先放上 本人 使用 kotlin 开发的逛丢的页面,kotlin开发的源码以及相关说明将在其他部分给出。

    我们会按照此列表展示,但是UI会略有修改。

    appBar部分为一个 Image 与 title ,不用详细的分解。

    列表的Item 分解示意图如下

    说名一下,row是横向排列的控件,column是竖向排列的控件。container 可设置边框边距等属性。

    开始代码实现步骤。

    新建一个 home_index.dart文件

    class HomeIndex extends StatefulWidget{
      @override
      State<StatefulWidget> createState() {
        // TODO: implement createState
        return IndexWidget();
      }
    }
    
    class IndexWidget extends State<HomeIndex>{
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return null;
      }
      
    }

    flutter 页面新建的时候可以选择继承  StatefulWidget 以及 StatelessWidget,StatelessWidget是无状态值得,即不可使用setState更新变量,我们需要在获取数据之后来刷新页面加载数据,所以我们使用 StatefulWidget .然后修改 main() 中的代码加载HomeIndex.

    此时 IndexWidget 的 build方法返回的还是空值,先完成appBar 部分,修改代码

    class IndexWidget extends State<HomeIndex>{
    
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return Scaffold(
            appBar: AppBar(
              title: Text("首页",style: TextStyle(color: Colors.white),),
              leading: Icon(Icons.menu,color: Colors.white,),
              backgroundColor: Colors.green[500],
            ),
            body: Text("列表数据等待设计"),
        );
      }
    
    }

    运行代码

    flutter中的所有的控件都是基于 Widget 所有可以使用 各widget 组合出各种效果。上面的appBar 中控件排列方式如下图(actions未展示),大概的位置如下图所示(请忽略图的美丑,示意即可)

    下面按照之前的 item 分析设计列表数据。flutter中列表数据使用 ListView.builder 创建。

    首先item用container包裹,里面是一个横向排列的Row控件,Row有两个子widget ,左边一个 image,右边一个 column ,column又分为两部分,上面一个Text,下面又是一个Row,而此Row又包含一个靠左显示的Text,以及靠右的有两个子Text的Row.分析完了,开始代码。

    根据梳理好的结构关系,编写代码如下

    class IndexWidget extends State<HomeIndex>{
    
      List<RstData> _listData;//设置列表数据
    
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return Scaffold(
            appBar: AppBar(
              title: Text("首页",style: TextStyle(color: Colors.white),),
              leading: Icon(Icons.menu,color: Colors.white,),
              backgroundColor: Colors.green[500],
            ),
            body: _listInfos(),
        );
      }
    
      //list列表
      Widget _listInfos(){
        return ListView.builder(
            itemCount: 3,//此处展示需要写成此形式,实际适用时  _listData==null?0:_listData.length
            itemBuilder: (content,index){
               return _listItem(null);
            }
        );
      }
      //list列表的item
      Widget _listItem(RstData rstdata){
        return Container(
          height: 110,//设置item的高度
          padding: EdgeInsets.all(5),//设置item的边距
          child: Row(
            children: <Widget>[
              Container(
                height: 100,
                margin: EdgeInsets.all(5),//设置图片的边距
                child: Image.network("https://l.guangdiu.com/29ddbc1dc1e151a2311604744f54510b.jpg?imageView2/2/w/224/h/224/format/jpg"),
              ),//涉及到widget的大小或者边框的时候,使用container包裹
              Container(
                width: MediaQuery.of(context).size.width-120,
                child: Column(
                  children: <Widget>[
                    Text("拼多多 Apple 苹果 新iPad Air 10.5 英寸平板电脑 WLAN版 64GB 3749元包邮(直降250元)"),
                    Expanded( //此处使用expanded 填充,然后设置container 的对其方式确保 在底部显示
                      child:  Row(
                        children: <Widget>[
                          Container(
                            alignment: Alignment.bottomLeft,//设置container的对其方式
                            child: Text("天猫",style: TextStyle(color: Colors.green[500]),),
                          ),
                          Expanded(
                            child: Container(
                              alignment: Alignment.bottomRight,//设置container的对其方式
                              child: Row(
                                mainAxisAlignment: MainAxisAlignment.end,//设置ROW的对其显示方式
                                children: <Widget>[
                                  Text("3分钟前-",style: TextStyle(color: Colors.green[500]),),
                                  Text("今日值得买",style: TextStyle(color: Colors.green[500]),),
                                ],
                              ),
                            ),
                          ),
                        ],
                      ),
                    ),//expanded类似于Android View的layout_weight属性按照比例填充,flex: 为1 时可以不填写此属性
                  ],
                ),
              ),
            ],
          ),
        );
      }
    
    }

    因为边界问题所以当widget需要设置宽高,对其方式等属性是,我们用container进行包裹,当控件需要占用一个不固定的空间时,我们用expanded 包裹,达到类似于 Android View的layout_weight的使用效果。

    运行示例,app截图

    基本样式已完成,下面的步骤是使用网络数据填充,并且给item添加一个框框

    修改后的代码为

    class IndexWidget extends State<HomeIndex>{
    
      List<RstData> _listData;//设置列表数据
    
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return Scaffold(
            appBar: AppBar(
              title: Text("首页",style: TextStyle(color: Colors.white),),
              leading: Icon(Icons.menu,color: Colors.white,),
              backgroundColor: Colors.green[500],
            ),
            body: _listInfos(),
        );
      }
    
      //list列表
      Widget _listInfos(){
        return ListView.builder(
            itemCount: _listData==null?0:_listData.length,//此处展示需要写成 3,实际适用时  _listData==null?0:_listData.length
            itemBuilder: (content,index){
               return _listItem(_listData[index]);
            }
        );
      }
      //list列表的item
      Widget _listItem(RstData rstdata){
        return Container(
          height: 110,//设置item的高度
          margin: EdgeInsets.only(left: 5,right: 5,top: 5),//设置item的边距
          decoration: BoxDecoration(
            border: Border.all(color: Colors.black54,width: 1),//设置边框的宽度 以及 颜色
            borderRadius: BorderRadius.all(Radius.circular(5)),//设置圆角
          ),
          child: Row(
            children: <Widget>[
              Container(
                height: 100,
                margin: EdgeInsets.all(5),//设置图片的边距
                child: Image.network(rstdata.image),
              ),//涉及到widget的大小或者边框的时候,使用container包裹
              Expanded(
                child: Container(
                  margin: EdgeInsets.only(right: 5),
                  child: Column(
                    children: <Widget>[
                      Text(rstdata.title),
                      Expanded( //此处使用expanded 填充,然后设置container 的对其方式确保 在底部显示
                        child:  Row(
                          children: <Widget>[
                            Container(
                              alignment: Alignment.bottomLeft,//设置container的对其方式
                              child: Text(rstdata.mall,style: TextStyle(color: Colors.green[500]),),
                            ),
                            Expanded(
                              child: Container(
                                alignment: Alignment.bottomRight,//设置container的对其方式
                                child: Row(
                                  mainAxisAlignment: MainAxisAlignment.end,//设置ROW的对其显示方式
                                  children: <Widget>[
                                    Text("${rstdata.pubtime}-",style: TextStyle(color: Colors.green[500],fontSize: 10),),
                                    Text(rstdata.fromsite,style: TextStyle(color: Colors.green[500],fontSize: 10),),
                                  ],
                                ),
                              ),
                            ),
                          ],
                        ),
                      ),//expanded类似于Android View的layout_weight属性按照比例填充,flex: 为1 时可以不填写此属性
                    ],
                  ),
                ),
              ),
            ],
          ),
        );
      }
    
      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        //项目加载时去获取数据
        _getGuangdiuIndexData();
      }
    
      void _getGuangdiuIndexData() async{
        String url="getlist.php";
        FormData formData=FormData();
        formData.add("markid", "5685521");
        Response resp=await HttpUtil().post(url,data: formData).then((resp){
          RespResult respResult=RespResult.fromJson(resp.data);
          setState(() {
            _listData=respResult.data;
          });
        });
      }
    }

    此处在 initState 中获取数据,所有不用热加载更新,否则看不到数据。重新运行项目等到数据列表

    此为数据的展示样式

    码云 git 下载

    展开全文
  • // 传入下拉列表数组值,构造信息模板 public static Workbook generateExcel(String[]typeArrays) {  Workbook wb = new XSSFWorkbook();  // 创建模板工作表 ... // 创建下拉列表值存储工作表并设置值  ...

    // 传入下拉列表数组值,构造信息模板
    public static Workbook generateExcel(String[]typeArrays) {
        Workbook wb = new XSSFWorkbook();
        // 创建模板工作表
        Sheet sheet = wb.createSheet("test");
        // 创建下拉列表值存储工作表并设置值
        genearteOtherSheet(wb, typeArrays);

        // 创建模板列信息并绑定下拉列表值
        Row row = sheet.createRow(0);
        // 设置列信息样式 -- 当前样式对于列信息未居中
        setStyle(wb, sheet, 0);
        setStyle(wb, sheet, 1);
        // 绑定列信息
        Cell nameCell = row.createCell((int)0);
        nameCell.setCellValue("名称");
        Cell typeCell = row.createCell((int)1);
        typeCell.setCellValue("类型");

        // 设置下拉列表值绑定对哪一页起作用
        sheet.addValidationData(SetDataValidation(wb, "typelist!$A$1:$A$" + typeArrays.length, 1, 0, typeArrays.length, 0));

        // 隐藏作为下拉列表值的Sheet
        wb.setSheetHidden(wb.getSheetIndex("typelist"), 1);

        return wb;
    }

    // 创建下拉列表值存储工作表并设置值
    public static void genearteOtherSheet(Workbook wb, String[]typeArrays) {
        // 创建下拉列表值存储工作表
        Sheet sheet = wb.createSheet("typelist");
        // 循环往该sheet中设置添加下拉列表的值
        for (int i = 0; i < typeArrays.length; i++) {
            Row row = sheet.createRow(i);
            Cell cell = row.createCell((int)0);
            cell.setCellValue(typeArrays[i]);
        }
    }

    // 设置列信息样式
    public static void setStyle(Workbook wb, Sheet sheet, int colNum) {
        CellStyle cellStyle = wb.createCellStyle();
        cellStyle.setAlignment(CellStyle.ALIGN_CENTER);
        DataFormat format = wb.createDataFormat();
        cellStyle.setDataFormat(format.getFormat("@"));

        sheet.setDefaultColumnStyle(colNum, cellStyle);
    }

    // 设置并引用其他Sheet作为绑定下拉列表数据
    public static DataValidation SetDataValidation(Workbook wb, String strFormula, int firstRow, int firstCol, int endRow, int endCol) {
        // 表示A列1-59行作为下拉列表来源数据
        // String formula = "typelist!$A$1:$A$59" ;
        // 原顺序为 起始行 起始列 终止行 终止列
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
        DataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)wb.getSheet("typelist"));
        DataValidationConstraint formulaListConstraint = dvHelper.createFormulaListConstraint(strFormula);
        DataValidation dataValidation = dvHelper.createValidation(formulaListConstraint, regions);

        return dataValidation;
    }

    public static void main(String[]args)throws Exception {
        List < String > typelist = new ArrayList < String > ();
        for (int i = 0; i < 200; i++) {
            typelist.add("T" + (0 + i));
        }
        String[]typeArrays = typelist.toArray(new String[typelist.size()]);
        Workbook wb = generateExcel(typeArrays);
        File tempFile = new File("C:\\Users\\gqd\\Desktop\\test.xlsx");
        OutputStream os = new FileOutputStream(tempFile);

        wb.write(os);
        os.close();
    }
     

    展开全文
  • Excel 下拉列表数据有效性智能匹配筛选 来源公式如下(适用于2010以上版本) =OFFSET(数据!$A$1,MATCH(INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*",数据!$A:$A,0)-1,,COUNTIF(数据!$A:$A,INDIRECT("R...

    Excel 下拉列表数据有效性智能匹配筛选

    来源公式如下(适用于2010以上版本)

    =OFFSET(数据!$A$1,MATCH(INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*",数据!$A:$A,0)-1,,COUNTIF(数据!$A:$A,INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*"))

    对于2010版本以下的excel,不能跨工作表引用sheet ,可如下设置

    点击【公式】下的【对应名称】,设置范围名称

    "a"对应上面的 "数据!$A$1" 

    "aa"对应上面的 "数据!$A:$A" 

    =OFFSET(a,MATCH(INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*",aa,0)-1,,COUNTIF(aa,INDIRECT("R"&ROW()&"C"&COLUMN(),)&"*"))

    点击保存时会提示错误,忽略!

     

    展开全文
  • layui数据表格设置行颜色

    万次阅读 2019-05-08 10:25:35
    table自带的可以设置某一个单元格颜色,必须根据内容来修改,对于很多列同时修改并不方便,直接使用js操作比较简单。 首先自定义一个div,内部存放table,根据class找到table,然后找到行tr,修改其样式中的颜色。 ...

    table自带的可以设置某一个单元格颜色,必须根据内容来修改,对于很多列同时修改并不方便,直接使用js操作比较简单。

    首先自定义一个div,内部存放table,根据class找到table,然后找到行tr,修改其样式中的颜色。

     //设置layui datatable的某一行的颜色
        //DivId:datatable父div的 id;RowIndex:行序列号;Color:颜色字符串,如'#FF3030'
        function Layui_SetDataTableRowColor(DivId,RowIndex, Color)
        {
            try
            {
                var div = document.getElementById(DivId);
                if(div != null) //找到对象了
                {
                    var table_main = div.getElementsByClassName('layui-table-main');   //通过class获取table_main
                    if (table_main != null && table_main.length > 0)
                    {
                        var table = table_main[0].getElementsByClassName('layui-table');   //通过class获取table
                        if (table != null && table.length > 0) {
                            var trs = table[0].querySelectorAll("tr");
                            if (trs != null && trs.length > 0) {
                                trs[RowIndex].style.color = Color;//字体颜色 
                                trs[RowIndex].style.backgroundColor= Color;//背景颜色
                            }
                        }
                    }
                    
                }
            }
            catch(e)
            {
                console.log(e.message);
            }
        }
    注意调用时必须要等table渲染完成后进行调用,可以放到渲染完成事件中调用。
    , done: function (res, curr, count) {
            //如果是异步请求数据方式,res即为你接口返回的信息。
            //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度
            console.log(res);
     
            //得到当前页码
            console.log(curr);
     
            //得到数据总量
            console.log(count);
     
            Layui_SetDataTableRowColor('tabl_panel_id1', 0, '#2c08b1');
        }
    

    最终效果如下:

    trs[RowIndex].style.color = Color;//字体颜色 

    trs[RowIndex].style.backgroundColor= Color;//背景颜色 

    展开全文
  • 在Python的学习中我们看到Python有列表、元组和字典三种基本的数据存储结构,下面对着三种结构做一个总结1. 列表(list)列表在Python中是一个任意类型对象位置的相关有序集合,它没有固定大小,根据数据量的不同...
  • Flutter使用ListView加载列表数据

    万次阅读 2018-10-25 14:21:15
    移动端UI展示最常见的展示形式莫过于列表,Android中使用ListView/Recyclerview,iOS也有UIListView,都可以实现列表展示。Flutter作为兼容Android和iOS的移动UI框架,自然也有实现此功能的组件,即ListView。 本文...
  • 下面是下拉列表的实现方法: data-options="editable:false, panelWidth: '80px', panelHeight:'auto'" style="width: 80px"> ${sexType }" var="item"> ${item.id }">${item.name }</option></c:forEach> 以下...
  • vue 显示列表数据改变,颜色改变

    千次阅读 2019-07-08 11:53:48
    作者:鲨鱼辣椒灬 来源:CSDN
  • 1.一般来说想爬取详情页的数据都会先把列表数据(带上详情页的链接)先爬爬出来再专门爬取详情页的数据。 2.爬取详列表数据步骤: 1.打开网页 2.循环翻页(注意:八爪鱼免费版一次只能爬取1w条数据,所以需要设置...
  • python数据类型—列表(list)

    千次阅读 2018-09-03 14:35:26
    列表是python中最常用的内置数据类型,用中括号[元素1,元素2…]括起,以逗号分隔,元素之间没有任何关系,可以是任何类型。 数组是只能存储同一种数据类型的结构,但是列表可不受局限。 2. 列表的特性(与元组的...
  • PyQt5之QListWidget显示列表数据

    千次阅读 2020-07-19 23:08:47
    PyQt5之QListWidget显示列表数据 QListWidget类是一个基于条目的接口,用于列表中添加或删除条目。列表中的每个条目都是一个QListWidgetItem对象。QListWidget可以设置为多重选择。 一、QListWidget类中的常用方法...
  • echarts设置原始数据及其自定义样式

    千次阅读 2018-03-22 15:37:41
    echarts 自定义原始数据样式 ...工作中遇到的echarts设置原始数据的问题 toolbox: { show: true, right: '10%', feature: { dataView: { readOnly: true //原始数据的textarea框只读 ...
  • 在Excel中,为了录入数据方便,通常会设置下拉菜单。今天,就给大家分享三种设置多功能下拉菜单的方法。 目录一、更新式下拉菜单二、联动式下拉菜单三、搜索式下拉菜单 一、更新式下拉菜单 主要方法:超级表+数据...
  • Spinner,通过Adapter提供数据,如果是静态的数据(写死的数据),那么spinner一开始就会默认显示第一个数据,在点开列表后,选中其他数据后,会显示相应选中的数据,但是如果在Spinner中通过Adapter提供的数据如果...
  • 微信小程序 绑定列表数据 分页

    万次阅读 2017-02-20 16:26:26
    这篇文章主要介绍了微信小程序 实现列表刷新的实例详解的相关资料,这里提供了实现代码及实现效果图,需要的朋友可以参考下 微信小程序 列表刷新: ...1.wx.request (获取远程服务器的数据,可以理解成$.ajax
  • 在循环列表的时候,我们需要给列表项一个控制显示的属性,如 是否可删除,是否已选中等等,而后端接口一般不会返回这种字段,因为这属于纯前端展示的,跟后端没啥关系,比如后端给的数据如下 [ {name: 'abc', age...
  • 在工作中,有时会遇到需要一些不能使用分页方式来加载列表数据的业务情况,对于此,我们称这种列表叫做长列表。比如,在一些外汇交易系统中,前端会实时的展示用户的持仓情况(收益、亏损、手数等),此时对于用户的...
  • 一.网站结构 ...【列表数据页面】 2.采集结果截图 【采集出来的列表数据】 二.配置模板 新建任务 点击下一步,由于仅需要采集本页面表格数据,所以勾选【抽选数据】。 2.创建/选择表单...
  • 很多时候在界面布局时我们会用到下拉列表,单独的一个列表与数据库的交互很简单,今天要记录的是当有多个下拉列表联动时,该怎样获取数据,即选择第一个下拉列表的值,动态的改变第二个下拉列表乃至更多列表的值。...
  • 你从数据库中查询得到的所有数据总和totalCount(这个你需要在dao层定义方法实现并把得到的数据返回给service层) 一共需要分多少页totalPage(这个需要你去计算通过查询所有的数据总和/current
  • 本人结合网上资料,总结出以下两种可以将列表数据写入已有excel并不改变原文件其它内容的方法。 第一种方法要用到xlwt、xlutils、xlrd三个第三方库。 import xlwt as xw from xlutils.copy import copy import ...
  • 关于element-ui 中 table 表头以及行内数据样式设置 &lt;el-table :data="devData" style="width: 100%;" height="52vh" :header-cell-style="{ /* 样式名称 : 属性 ...
  • Bootstrap Table获取并展示数据列表

    万次阅读 2017-11-28 11:23:05
    // cache: false, // 默认true 设置为 false 禁用 AJAX 数据缓存 contentType : "application/x-www-form-urlencoded", // 参数提交类型,默认以application/json提交 queryParams:function(params){ $(form...
  • Mysql Workbench使用教程

    万次阅读 多人点赞 2019-03-20 23:45:34
     设置完成之后,可以预览当前操作的 SQL 脚本,然后单击 Apply 按钮,最后在下一个弹出的对话框中直接单击 Finish 按钮,即可完成数据表 "st" 中外键的删除,如下图所示。 唯一约束:UQ 索引  勾选 UQ ...
  • vue获取后台数据展示在下拉框列表-element

    万次阅读 多人点赞 2019-03-23 14:38:14
    第一个写好相关的下拉框的样式。然后为option添加赋值 ...在mounted中绑定函数,这一步最重要,然后在methods中写相关的方法,注意我这个是利用后台给的接口来写的,后台传输的数据将会在前台的下拉框中显示 ...
  • Ansysworkbench导出数据默认为五位有效数字,也就是小数点后四位。软件自带图形界面绘图如下: 导出数据如下: ...导出数据作图如下: ...workbench 下 tools-options,apperance设置 精度如下:
  • cocos creator学习16——滚动列表数据的动态加载

    万次阅读 热门讨论 2018-05-03 15:45:22
    为scrollview中的content节点添加Layout组件,type属性设置为垂直(VERTICAL)布局,Resize Mode属性设置为CONTAINER 属性准备 properties: { HIGH:80, //每一项的高度 PAGE_NUM:8, //每一页8.....
  • PL/SQL Developer默认显示数据条数为当前页面可容纳量,设置显示所有查询结果数据如下: 工具→首选项→窗口类型→SQL 窗口(每页记录数:选择所有记录) 转载于:...
  • MFC下拉列表数据顺序乱排解决方法

    千次阅读 2015-10-24 17:35:49
    MFC下拉列表数据在编译后和输入输入的数据顺序不对,如下图为编辑中的数据: 但是显示的时候效果如下: 这事我们不想要的效果。修正方法如下: 最终效果如下所示: ...
  • Tree:加载列表数据

    千次阅读 2015-10-27 15:37:03
    1)从数据库查询出一个列表数据 2)在后台,将列表数据转换为树形数据 3)通过JSON方式返回 在前台页面,可以给Tree设置url地址,或者调用load方法加载树形数据。 后台的“列表转树形”是一个相对有点小难度的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,307,601
精华内容 523,040
关键字:

列表数据怎么设置