当前位置: 首页 > news >正文

从零开始学习Sencha Touch MVC应用之十四

我们已经给search-panel设置了cls属性:“一个可以添加到这个组件元素中的供选择的附加CSS类(默认为“”),主要可用于对组件的定制风格或者其组件元素的CSS规范化等”(引自SenchaTouch的相关文档),我们将使用这些类来达到视图的半透明化处理的目的。
Search View将镶嵌在其他视图的顶部,并且不是以子视图窗口的方式显示,所以我们需要设置全屏属性,以强制组件尽可能的占用所有的可用空间。
因为我们想让我们的搜索视图有滑动功能,我们需要设置浮动floating属性为true,否则视图将显示没有滑动动画功能,下面就是sencha Touch文档关于此问题的描述:“以浮动属性来创建组件,并且使用绝对定位,缺省值为false”。
当浮动属性为true时,x-floating类将被附加到组件上,这个类被添加了一些我们不想要的CSS规则,像边界等,为了避免这些不需要的类的添加,对于floatingCls的属性值必须设为空。
我们已经在可泊位的工具条上添加了搜索字段和取消按钮,在这部分的flex属性的代码中(上面代码中的第12行)属性将被设为1,以使搜索字段的宽度达到尽可能的大(使取消按钮被推到靠右的地方)。
关于更多的flex属性和布局,可以参考sencha Touch屏幕的Intro to layouts。
现在打开res/css/style.css文件,并添加下面的内容:

.search-panel {
         z-index: 10000;
         background: url(../images/search-panel-bg.png) repeat;
}



我们已经针对z-index设置足够大的值,以确保搜索视图在所有的控件之上,我们也添加了半透明的背景图片,这个图片可以从这里(here)下载,下载此图片后并将其放到res/images目录中。
现在该是我们进一步细化视图的时候了!
打开搜索控制器(SearchController.js)修改其index action如下:

index: ()
{
         if ( ! this.searchView)
         {
                 this.searchView = this.render({
                          xtype: 'SearchIndex',
                 });
 
                 var cancelSearchBtn = this.searchView.query('#cancelSearchBtn')[0];
                 //
                 cancelSearchBtn.setHandler((){
                          this.searchView.hide();
                 }, this);
         }
 
         this.searchView.show({
                 type: 'slide',
                 direction: 'up',
                 duration: 500,
         });
},



首先让我们来看上面的代码第16行,因为我们向让搜索视图在其他视图的顶部,并且并不仅仅是切换过去,并不能使用其setActiveItem功能,所以我们简单的使用了视图的显示方法,这个功能函数接受可选择的动画参数,这个参数即可以使包含动画类型的字符串函数,也可以是动画属性的对象,就像我们在例子中传输的给它的一样。
在第11行代码中,我们针对隐藏在搜索视图中的取消按钮功能设置了处理器,这个隐藏功能也可以接收动画参数,因为我们不向这个函数传递一个参数,这个视图将在动画显示的功能中处于隐藏状态,反之则不然。
现在可以进行测试,搜索视图如下所示:
可以从下面的地址下载源代码(here.)

转载于:https://www.cnblogs.com/fyq891014/archive/2012/05/08/3294788.html

相关文章:

  • 四 APPIUM GUI讲解(Windows版)(转)
  • net user使用
  • 如何在Ubuntu上使用Grafana监控Docker
  • 电脑快捷键
  • 字符合并[HAOI2016]
  • love——sir thomas browne
  • 开源 java CMS - FreeCMS2.6 积分记录
  • 个人记事本-介绍
  • 如何让Ubuntu在老旧设备上飞速运行!
  • Redis事件驱动库转
  • 开源 java CMS - FreeCMS2.6 站内信
  • Spring 整合 Hessian
  • infoq 七牛云CTO
  • 句柄和ID 指针与handle的区别
  • 运营社群看这篇就够了,微信群门槛设置,用户思维、流量思维与产品思维
  • Android优雅地处理按钮重复点击
  • Codepen 每日精选(2018-3-25)
  • Laravel Telescope:优雅的应用调试工具
  • nodejs调试方法
  • PHP面试之三:MySQL数据库
  • python 学习笔记 - Queue Pipes,进程间通讯
  • vue-router的history模式发布配置
  • 第2章 网络文档
  • 解析 Webpack中import、require、按需加载的执行过程
  • 如何正确配置 Ubuntu 14.04 服务器?
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 7行Python代码的人脸识别
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​iOS实时查看App运行日志
  • #Linux(帮助手册)
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #在 README.md 中生成项目目录结构
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (1)bark-ml
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (十一)c52学习之旅-动态数码管
  • (转)程序员技术练级攻略
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net core控制台应用程序初识
  • .NET MVC第三章、三种传值方式
  • .NET 设计一套高性能的弱事件机制
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET6 命令行启动及发布单个Exe文件
  • .NET项目中存在多个web.config文件时的加载顺序
  • ?php echo ?,?php echo Hello world!;?
  • @Builder用法
  • @Transactional类内部访问失效原因详解
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [383] 赎金信 js
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [Codeforces] number theory (R1600) Part.11
  • [Django 0-1] Core.Handlers 模块