Sencha Touch 2.0 组件:Carousels、List、TabPanel 之用法简介

简介: Carousels 组件Carousels,翻译过来“传送带”的意思,顾名思义,仿佛屏幕背后就有一传送带,用户发出向左或向右的指令,即可命令传送带“移动”。移动设备上的屏幕就是当前显示的内容。在中间的那个“一点点”图案即为指示器,指示器可以告诉你剩余有多种张待现实的页面。
Carousels 组件

Carousels,翻译过来“传送带”的意思,顾名思义,仿佛屏幕背后就有一传送带,用户发出向左或向右的指令,即可命令传送带“移动”。移动设备上的屏幕就是当前显示的内容。在中间的那个“一点点”图案即为指示器,指示器可以告诉你剩余有多种张待现实的页面。

与其他组件那样,Carousels 可适用于水平或垂直的方向。下面例子将建立一个简单的水平方向的 Carousels 组件:

Ext.create('Ext.Carousel', {
    fullscreen: true,

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            html : 'Item 1',
            style: 'background-color: #5E99CC'
        },
        {
            html : 'Item 2',
            style: 'background-color: #759E60'
        },
        {
            html : 'Item 3'
        }
    ]
});

试试在这个组件上面滑动一下手指,组件就会响应你产生切换的效果,当然同时也会更新指示器。下面是一个垂直方向的例子:

Ext.create('Ext.Carousel', {
    fullscreen: true,
    direction: 'vertical',

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            html : 'Item 1',
            style: 'background-color: #759E60'
        },
        {
            html : 'Item 2',
            style: 'background-color: #5E99CC'
        }
    ]
});

以上代码效果如下:

毫无疑问,Carousels 即是一个容器,所以我们可以放任何东西在里面,好比下面的,我们把一个列表组件和表单组件分别放入 Carousels 里头:

Ext.create('Ext.Carousel', {
    fullscreen: true,

    items: [
        {
            xtype: 'list',

            items: {
                xtype: 'toolbar',
                dock: 'top',
                title: 'Sencha Touch Team'
            },

            store: {
                fields: ['name'],
                data: [
                    {name: 'Rob'},
                    {name: 'Ed'},
                    {name: 'Jacky'},
                    {name: 'Jamie'},
                    {name: 'Tommy'},
                    {name: 'Abe'}
                ]
            },

            itemTpl: '{name}'
        },
        {
            xtype: 'fieldset',
            items: [
                {
                    xtype: 'toolbar',
                    dock: 'top',
                    title: 'Login'
                },
                {
                    xtype: 'textfield',
                    label: 'Name'
                },
                {
                    xtype: 'passwordfield',
                    label: 'Password'
                }
            ]
        }
    ]
});
以上代码效果如下:

List 组件

List 组件的意思就是把 Store 里的数据渲染成为页面上的一笔笔条目。List 属于 DataView 的子类,继承了 DataView 的大部分能力。List 在 DataView de 基础上加入属于其自身的能力有:

  • 将个条目项进行分组,还可以制作索引条(index bar)、固定头部(pinned header)
  • 为每一个项设置反闭包式(disclosure)的图标
  • 为每一个项设置图标和标签

试试渲染一个 List,用静态的数据:

Ext.create('Ext.List', {
    store: {
        fields: ['name'],
        data: [
            {name: 'Cowper'},
            {name: 'Everett'},
            {name: 'University'},
            {name: 'Forest'}
        ]
    },

    itemConfig: {
        tpl: '{name}'
    }
});

执行以上代码,其中一个步骤就是会替 Store 里面的每一笔记录渲染一个 ListItem。下面的工作是为 List 添加事件侦听器:

Ext.create('Ext.List', {
    listeners: {
        select: function() {
            alert('tapped on ' + )
        }
    },

    //store and itemConfig as before
});

加载远程数据

若要从 WebService 那里获取远程数据,这种场景也是非常常见的。该怎么做?

使用 TabPanel

Tab 面板在用户切换多个页面的时候非常有用。Tab 面板中包含多个 Tab,每个单独的 Tab 又是一个个 Component 组件。当点击候选栏时便会显示 Tab。候选栏既可以在屏幕的上方,也可以位于下方。候选栏可以制定其标题 title 及 图标 icon。

下面就是一个位于底部的 Tab Panel 例子:

Ext.create('Ext.TabPanel', {
    fullscreen: true,
    tabBarPosition: 'bottom',

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            title: 'ddd',
            iconCls: 'home',
            html: 'fdfdsfdsdfds Screen'
        },
        {
            title: 'Contact',
            iconCls: 'user',
            html: 'Contact Screen'
        }
    ]
});

以上代码效果如下:

面板中的每一个子 Tab 都被定义在 items 的数组之中。Tab 配置的方法也非常简单,代码如下(不过这是位于顶部的候选栏):

Ext.create('Ext.TabPanel', {
    fullscreen: true,

    defaults: {
        styleHtmlContent: true
    },

    items: [
        {
            title: 'Home',
            html: 'Home Screen'
        },
        {
            title: 'Contact',
            html: 'Contact Screen'
        }
    ]
});
以上代码效果如下

动画 Animation

Tab 面板默认情况下,Tab 面板切换的时候是带有“滑动(slide)”的动画效果的。如果你想改变默认的动画效果,可以在 layout 下面的 animation 配置项中作修改。比如现在我们修改为“渐褪(fade)”的效果:

Ext.create('Ext.TabPanel', {
    fullscreen: true,

    defaults: {
        styleHtmlContent: true
    },

    layout: {
        type: 'card',
        animation: {
            type: 'fade'
        }
    },

    items: [
        {
            title: 'Home',
            html: 'Home Screen'
        },
        {
            title: 'Contact',
            html: 'Contact Screen'
        }
    ]
});

由于 Tab 式面板是采用“卡式布局的(Card Layout)”,故所以 layout 必须指定为“card”。

目录
相关文章
|
安全 C#
C# List基本用法
C# List基本用法
|
JavaScript
Ant designe vue中有关<a-list>组件中 实现分页以及复选框效果
Ant designe vue中有关<a-list>组件中 实现分页以及复选框效果
694 0
|
8月前
|
前端开发 JavaScript UED
React 拖拽排序组件 Draggable List
在现代Web应用中,拖拽排序功能显著提升用户体验。使用React结合`react-dnd`库,可以轻松创建高效且易于维护的拖拽排序组件。通过简单的拖拽操作,用户能直观调整列表项顺序,适用于任务管理、看板工具等场景。实现步骤包括项目初始化、安装依赖、创建基础组件、添加拖拽功能及管理状态和事件。常见问题如拖拽效果不流畅、顺序未更新等可通过性能优化、正确处理索引交换等方式解决。移动端支持也需考虑,确保跨平台的良好体验。
538 25
List集合(方法简介,集合遍历)
List集合(方法简介,集合遍历)
|
10月前
|
大数据 UED
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List和Grid组件展示数据列表
List 和 Grid 是鸿蒙开发中的核心组件,用于展示动态数据。List 适合展示垂直或水平排列的数据列表,而 Grid 则适用于展示商品或图片的网格布局。本篇将展示如何封装组件,并通过按钮实现布局切换,提升界面的灵活性和用户体验。
504 9
「Mac畅玩鸿蒙与硬件16」鸿蒙UI组件篇6 - List和Grid组件展示数据列表
|
12月前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
148 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
10月前
|
JavaScript 数据管理 虚拟化
ArkTS List组件基础:掌握列表渲染与动态数据管理
在HarmonyOS应用开发中,ArkTS的List组件是构建动态列表视图的核心。本文深入探讨了List组件的基础,包括数据展示、性能优化和用户交互,以及如何在实际开发中应用这些知识,提升开发效率和应用性能。通过定义数据源、渲染列表项和动态数据管理,结合虚拟化列表和条件渲染等技术,帮助开发者构建高效、响应式的用户界面。
786 2
|
存储 索引 Python
Python教程:深入了解 Python 中 Dict、List、Tuple、Set 的高级用法
Python 中的 Dict(字典)、List(列表)、Tuple(元组)和 Set(集合)是常用的数据结构,它们各自有着不同的特性和用途。在本文中,我们将深入了解这些数据结构的高级用法,并提供详细的说明和代码示例。
800 2
|
存储 C++
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
120 7
|
SQL 数据处理 HIVE
【Hive】写出Hive中split、coalesce及collect_list函数的用法?
【4月更文挑战第17天】【Hive】写出Hive中split、coalesce及collect_list函数的用法?