UISection界面组件

全栈之路

用后端知识体系开发原生移动应用

UISection是UMC架构展示核心,还是页面级组件,他把整个界面以列表的形式划分为titleheadersectionfooterbar的方式进行划分,在section再用Row进行划分,让每row都可以绑定对应的组件,还支持分页加载数据,同时让后端工程师可以对secttion中的行单元进行行册,行更新,行插入等等,也可以对单元行右滑删除,现在这一切都可以让我们的后端工程师加入控制,且我们已经用java.net都完成对各项操作的封装,让后端工程师最少时间,最少的代码,完成对UI的各项操作,看下图:
上图就是UISection划分界面方式,我们可以方便用UISection方法对上列位置进行操控。
上图位置java方法C#方法描述
Titletitle()Title页面标题
UIHeaderuiHeader()UIHeader页面头视图
UIFooteruiFooter()UIFooter页面尾视图
BaruiFootBar()UIFootBar页面下面的Bar
SectionnewSection()NewSection()新建Section区域
Rowadd...()Add...()增加行单元组件系列方法
我们先讲如何打开UISection界面,打开UISection有两种方式
1、用UIClick打开
在用UIClick的方式,后台代码的UIClick静态方法pager进入封装,各个参数代码中都有讲解,pager指定的数据源,必须需要是UISection的数据源
目前用UIClick封装pager的方法如下:
    public static UIClick pager(String model, String cmd, WebMeta search) ;
    public static UIClick pager(String model, String cmd, WebMeta search, boolean isCache);
    public static UIClick pager(String model, String cmd);
    public static UIClick pager(String model, String cmd, boolean isCache, String closeEvent) ;
    public static UIClick pager(String model, String cmd, boolean isCache);
2、用浏览器路径打开
可以直接在浏览中输入UMC/{model}/{cmd}/{pathValue}采用路径的方式加载Section页面。
3、用数据事件触发
在后台代码中可以用数据事件来打开UISection界面,事件所需要的参数由后台UISectionBuilder来封装,UISectionBuilder提供了绑定UISection各数据事件的方法,代码如下:更多方法请参考sdk
   /*
    * 检测是不是设备上的UISection 获取数据源,如果是获取数据源,则limit必有值
    * */
    if (form.containsKey("limit") == false) {
        this.context().send(new UISectionBuilder(request.model(), request.cmd())
                .refreshEvent("Setting", "image", "Email", "Mobile")
                .builder(), true);

    }
4、行更新、行插入、行删除
要实现行更新或行插入,则第一步则需要我们定位单元行组件的的索引,我们用UIClick事件keyClick事件对象告诉UISection,这个事件请求是要追加uisectionrow参数的,当key等于Click时,此时的send就也一个UIClick结构,UISection所把uisectionrow,添加到send参数中,这样就可以对后端就知道是操作那一行的组件了,就可以使用UISection.Editer,对行进行操作管理了。
  public static class Editer {
        /**用section与row初始化 
         */
        public Editer(int section, int row) ;
        /**行更新,
         * @param value 更新的组件
         * @param reloadSinge 是否是单行更新,还是整体更新
         * @return
         */
        public Editer put(UICell value, boolean reloadSinge) ;
        /**行删
         * @return
         */
        public Editer delete();

        /**行追加
         * @param value 追加的组件
         * @return
         */
        public Editer append(UICell value);
        /**行插入
         * @param value 插入的组件
         * @return
         */
        public Editer insert(UICell value) ;

        /**发送到客户端
         * @param context UMC上下文
         * @param ui 界面的名
         * @param endResponse  是否立刻返回客户端
         */
        public void sendTo(WebContext context, String ui, boolean endResponse) ;
    }
从上面代码可以看到,我可以管理对行进行管理,可以是行更新、更删除、行插入、行追加都可以。
我们还有一种从界面上左滑删除的方式。
此方法是UISection.delete如下代码
    /**添加支持左滑删除的组件
     * @param cell 行组件
     * @param eventText 删除后请求的事件
     */
    public UISection delete(UICell cell, UIEventText eventText);
我们的UISection对界面的row组件进行更新和控制,先确认的索引的位,再对后面进行操作,获取索引的方式可用UIClick.click方式获取事件所在的索引位。
这里重点说明一下 ,当key等于Click时,此时的send就也一个UIClick结构,当此界面是UISection时,则会把当前界面的name和sectionrow做为send的参数合成模块指令请求,这样,后台代码就知道当前请求的是在那个页面,那个section那个row的点击,对了此操作就可以对这这个界面的这一行进行操作了。

管理员 | 阅读(156) | 评论(0)

评论
点赞
已读
暂无评论