一个App完成入门篇(四)- 完成反馈页面
上一节中我们学会了如何通过点击不同按钮切换页面,这节专注于完成反馈页面的功能以及细节动画。
- 导入项目
- 添加新组件
- 同步新组件
- 完成页面布局
- 输入时加动画效果
- 弹出日期选择
- 直接引用UI页面
将要学习的demo效果图如下所示
1. 导入完整项目
本节示例demo请参考下载地址,可以导入到设计器中学习。
2. 添加新组件
本节中将要用到两个新组件,do_DateTimePicker和do_Picker组件,这两个组件是在创建应用时没有的,需要从组件商店中添加。在第一节Hello World教程中,我们通过设计器新建的项目,会在开发者中心-应用开发创建一个相应的应用,如图所示
我们点击应用配置按钮,进入应用配置页,选择“组件配置”,如下图所示
蓝框中的内容是当前应用可使用的组件列表,每个组件都有不同版本,每个版本对应着更新了不同内容,用户在使用时选择自己想用的版本即可;点击绿框中的“添加组件”按钮,然后选择“商店组件”,找到do_Picker和do_DataTimePicker组件,点击后面的“+”号进行添加组件操作,此时再返回“组件列表”中就可以看到刚刚我们新添加的两个组件了。
3. 同步新组件
想要在设计器中使用刚刚添加的两个组件,只需要在WorkSpace中选中该应用,再点击一下同步按钮即可。这样我们从商店选择的新组件就可以在设计器中使用了。
3. 完成页面布局
分析一下页面布局,这里我们使用一个线性布局LinearLayout(红框)去包裹四个绝对布局ALayout(蓝框)这四个ALayout的ID从上到下分别设置为do_ALayout_3、do_ALayout_createTime、do_ALayout_type和do_ALayout_7,因为线性布局所有内部子控件都从上向下罗列,保证组件直接紧密排列,每个ALayout中又去分别包裹Label标签组件、TextBox、TextField等用于显示和输入的组件,最底下都有一个height为1,bgColor为灰色的ALayout作为一条分割线。
4. 输入时加动画效果
在ID为do_ALayout_3的ALayout中,添加一个Label组件(修改ID为do_Label_title)和一个单行文本TextField(修改ID为do_TextField_title),通过给Label设置text属性为“标题”来展示我们想要显示的文字;修改TextField的hint属性为“标题”能让该组件在text属性为空时显示提示信息。
我们想让输入文字时有显示“标题”的Label组件有一个向上的动画效果,直接订阅TextField的textChanged事件,这个事件会在text改变时触发,在事件的回调中调用所有UI都有的基类方法show,通过给show方法设置动画类型和动画时间参数,来达到Label的动画效果,需要说明的是,在使用show方法前要保证UI组件的visible是为false的才会有动画效果。同样的效果我们也给放“内容”的Label加上。
5. 弹出日期选择
我们想要在点击“反馈时间”的do_ALayout(ID为)时弹出do_DateTimePicker选择日期,只需要订阅do_ALayout_createTime的touch点击事件,在触发事件的回调中调用do_DateTimePicker的show方法来显示一个日期选择器。
因为do_DateTimePicker是SM类型的,这里直接通过类型来对组件进行实例化。
6. 直接引用UI页面
要实现文章顶部的效果图第三张所示效果,我们首先要单独添加一个UI页面,只放一个Picker组件,并将页面的其他地方设置为灰色透明效果,
一个App完成入门篇(四)- 完成反馈页面的更多相关文章
- 一个App完成入门篇(七)- 完成发现页面
第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...
- 一个App完成入门篇(五)- 完成新闻页面
本节教程将介绍如何用DeviceOne简单而高效的完成一个新闻页面. 导入项目 数据模板分离MVVM模型 自定义事件 展示新闻 九宫格展示 将要学习的demo效果图如下所示 1. 导入完整项目 本节示 ...
- 一个App完成入门篇(三)-完善主框架
本节教程将继续带领大家完善教学demo 导入项目 完善主框架 完成viewShower子视图 打开新页 启动动画 将要学习的demo效果图如下所示 1. 如何导入完整项目 本节示例demo请参考下载地 ...
- 一个App完成入门篇(二)-搭建主框架
通过第一课的学习,你已经掌握了如何通过debug调试器来跟PC上的设计器联调来实时查看UI设计效果.调试代码了,接下来通过一系列的demo开发教学你将很快上手学习到如何开发一个真正的App. 要开发A ...
- 一个App完成入门篇-终结篇(八)- 应用收官
经过以上几步的学习,我们终于来到最后一个步骤了,应用APP也接近尾声. 通过之前的几节教程,不知道您对使用DeviceOne开发一个应用是不是已经得心应手了,本节教程将教会大家如何在开发完成之后通过D ...
- 一个App完成入门篇(六)- 完成通讯录页面
第五章和第六章间隔时间有点长,对不起大家了.下面继续. 本节教程将要教会大家如何加载本地通讯录. 导入项目 导入通讯录 自定义js模块 发送和订阅page消息 将要学习的demo效果图如下所示 1. ...
- 一个App完成入门篇(一)-从Hello world开始
程序员学习新技术都是通过Hello World开始的,我们也不例外.第一课我们简单了解利用do平台开发App的基本流程,能了解到的知识点是: 开发环境搭建 创建开发者账号 新建项目 拖拽一个组件 修改 ...
- FPGA基础入门篇(四) 边沿检测电路
FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电 ...
- 【SSRS】入门篇(四) -- 向报表添加数据
原文:[SSRS]入门篇(四) -- 向报表添加数据 定义好数据集后 [SSRS]入门篇(三) -- 为报表定义数据集 ,就可以开始设计报表了,将要显示在报表的字段.文本框.图像和其他项从工具箱拖放到 ...
随机推荐
- Android安全之Https中间人攻击漏洞
Android安全之Https中间人攻击漏洞 0X01 概述 HTTPS,是一种网络安全传输协议,利用SSL/TLS来对数据包进行加密,以提供对网络服务器的身份认证,保护交换数据的隐私与完整性. ...
- C语言之数组,字符串,指针
一. 数组的定义 1. 数组初始化 初始化方式 int a[3] = {10, 9, 6}; int a[3] = {10,9}; int a[] = {11, 7, 6}; int a[4] = ...
- ZOJ3791_An Easy Game
给出两个等长的字符串,每次需要改变m个数字,每次必须改变k个数字,求从第一个串变化到第二个串的方案数. DP.f[i][j]改变i步后,有j个位置被改变的方案数.然后直接枚举当前改变的几个位置是前面重 ...
- MVC 3 IIS7.5 网站发布及IIS配置文件问题处理
1.环境配置 1) IIS7.5 2)VS2010 完整版 2.配置internet信息服务功能,直接上图,简洁明了. 3.打开VS2010 ,网站发布, 4.IIS网站设置 添加网站, 5-在浏览器 ...
- HDU Game Theory
5795 || 3032 把x个石子的堆分成非空两(i, j)或三堆(i, j, k)的操作->(sg[i] ^ sg[j])或(sg[i] ^ sg[j] ^ sg[k])是x的后继 #def ...
- VS 2010 问题集锦
1.Cannot find or open the PDB file 用vs2010写程序时,经常遇到:按F5,提示命令符一闪而过,且显示“Cannot find or open the PDB fi ...
- Struts2之文件上传下载
本篇文章主要介绍如何利用struts2进行文件的上传及下载,同时给出我在编写同时所遇到的一些问题的解决方案. 文件上传 前端页面 <!-- 引入struts标签 --> <%@tag ...
- JSP/Servlet相关
1 简介 JSP(Java Server Page)和Servlet是JavaEE规范的两个基本成员,是JavaWeb开发的重点. JSP的本质是Servlet,当用户向指定的Servlet发送请求时 ...
- label下面放置select的问题
今天做项目的时候突然发现一个问题. html标签label的用法分两种: <label for="name">姓名:</label><input id ...
- CentOS防火墙问题
问题背景 在Vmware虚拟机中安装了 CentOS 7 的 Linux 版本,并在其中安装了 Oracle 11g 数据库,数据库可以在虚拟机中顺利启动,本地主机也可以 ping 通 linux.准 ...