zoukankan      html  css  js  c++  java
  • sencha touch 2 tabpanel中List的不显示问题,解决方案

    笔者在做sencha项目的时候碰到一个需求,就是"好友列表"中分为"未确认好友"和"已确认好友",两个都是一个list,自然想到的就是使用tabpanel来实现.

    但是在sencha touch的开发使用过程中,我们总是会碰到不给高度就不显示的问题,非常之恼火,浪费我大把时间研究

    笔者在开发这个需求的时候也碰到了,下来就分享一下方案吧:

      1,先来看看有问题的方案,以下是代码:

      

    Ext.define("mine.view.ListFriendView", {
        extend: "Ext.tab.Panel",
        xtype: "listFriendView",
        requires: [
            'Ext.data.Store'
        ],
        config: {
            tabBarPosition:'top',
            style:'background: #ececec;',
            cls:'x-tab2',
            items: [
                {
                    xtype: "toolbar",
                    title: "我的好友",
                    docked: "top",
                    ui: "dark",
                    items: {
                        xtype: "button",
                        cls: "backBtn",
                        text: "返回",
                        handler: function () {
                            var backid = Ext.Viewport.getInnerItems().length
                            Ext.Viewport.remove(this.up('listFriendView'), true);
                            Ext.Viewport.setActiveItem(backid - 2);
                        }
                    }
                },
                {
              xtype:"list",
                    title:'未确认好友',
              emptyText:"没有数据", scrollable:
    true,          itemTpl:"........." }, {           xtype:"list", title:'已确认好友',
             emptyText:"没有数据", scrollable:
    true,          itemTpl:"........." } ] } })

    这样写的话,如果不给定list的高度,那么这个list是不会被显示出来的.

    但是给的高度要是太小,List数据显示不完全,给的太高,如果没有数据的话,emptyText就会被挤到可视区域以外(可以用审查元素看到确实存在,但是在很下面,看不到),这就是困扰到我们的问题,

    以下是解决方案,请看代码:

    Ext.define("mine.view.ListFriendView", {
        extend: "Ext.tab.Panel",
        xtype: "listFriendView",
        requires: [
            'Ext.data.Store'
        ],
        config: {
            tabBarPosition:'top',
            style:'background: #ececec;',
            cls:'x-tab2',
            items: [
                {
                    xtype: "toolbar",
                    title: "我的好友",
                    docked: "top",
                    ui: "dark",
                    items: {
                        xtype: "button",
                        cls: "backBtn",
                        text: "返回",
                        handler: function () {
                            var backid = Ext.Viewport.getInnerItems().length
                            Ext.Viewport.remove(this.up('listFriendView'), true);
                            Ext.Viewport.setActiveItem(backid - 2);
                        }
                    }
                },
                {
                    title:'未确认好友',
                    scrollable: true,
                    xtype:"noMyFriendListView"
                },
                {
                    title:'已确认好友',
                    scrollable: true,
                    xtype:"myFriendListView"
                }
            ]
        }
    
    });

    这里将两个需要切换的list写到两个单独的view中

    "noMyFriendListView","myFriendListView",

    然后在这个tabpanel中使用xtype的方式引用这两个view,

    这样就完美解决了!

  • 相关阅读:
    【转】互联网科技大佬奋斗励志故事
    Java RestTemplate 请求参数字符串中有大括号{}的请求正确方法
    【资料最全】在100以内的所有情况,可以被写作三个数的立方和
    一个例子让你懂java里面的守护线程
    java中finally里面的代码一定会执行吗?(try里面做了return呢?)
    什么是mysql索引下推(有些装B面试官会问)
    java中静态变量指向的对象是在jvm那个区域?用图解告诉你。
    偶然发现在java方法中可以定义类
    Java里面的Comparable接口
    leetcode面试题 17.14. 最小K个数(快速排序,只排序一边)
  • 原文地址:https://www.cnblogs.com/Brose/p/sencha_tabpanel_list.html
Copyright © 2011-2022 走看看