`
zhangdaiping
  • 浏览: 129428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TableLayout设计考虑不周的地方

阅读更多
今天有个别的部门同事跑来问我, Ext.Panel组件使用TableLayout布局, 翻页到最后一页, 再往回翻页, 怎么前面有个空白

正常情况:


错误演示:


先Check同事写的代码
// Panel在进行翻页的时候, 先移除了所有的子元素
panel.removeAll();

// 然后再添加了新页面的子Panel
for (var i = 0; i < len; i++) {
   // ...演示环境省略代码...
   panel.add(new Ext.Panel({}));
}

panel.doLayout();


用FireBug一看, 有一个空白的TD占位;

原来是Ext.Container在remove子元素时, 并没有把table里面的TR和TD给移除掉, 导致了这个错误;



举例说明

假如我们有一个3*3的Panel, 每页显示9条数据, 和我例子里面的图显示一样, 共3页, 前两页都是9条数据, 第三页只有1条数据;

当第一页时, 正常显示;

翻第二页, 执行上面的动作, 先移除Panel的子元素, 然后再增加新的子元素; 这时你使用Firebug能看到一个现象, 前面会有9个空的TD, 这9个TD就是装载第一页内容的TD容器, 在移除的时候并没有把TD移除掉;

翻第三页, 由于第三页只有一条记录, 第三页只会增加一个TD;

当往回翻页时, 问题出现了, 新页内容的位置就会被第三页的TD给挤掉, 就出现了这样的现象了.

修改方法
// 移除table旧tbody节点
Ext.fly(panel.layout.table).child('tbody').remove();

// 重新创建一个
Ext.fly(panel.layout.table).createChild({tag: 'tbody'});

// 重置table的内存变量
panel.layout.currentRow = 0;
panel.layout.currentColumn = 0;
panel.layout.cells = [];


后记

我觉的官方TableLayout应该提供一个刷新table的函数, 这样就省去很多麻烦了.
分享到:
评论
1 楼 tchitani 2011-10-24  
any working example?

相关推荐

    Android TableLayout实现边框

    在Android开发中,TableLayout是布局管理器的一种,它允许开发者以表格的形式排列视图(Views)。...通过研究"AndroidEggTableBorder"源码,开发者可以深入理解这一过程,提升自己的Android UI设计技能。

    TableLayout

    java TableLayout布局

    用TABLELAYOUT做表格

    在Android开发中,创建用户界面是一项重要任务,而表格布局(TableLayout)是实现结构化数据展示的有效方式。本文将详细介绍如何使用TableLayout来构建一个功能...记得,始终以用户体验为中心,设计简洁易用的界面。

    tablelayout实现表格效果

    对于大数据集,考虑使用ListView或RecyclerView,它们使用ViewHolder模式提高滚动性能。 总的来说,TableLayout是Android中实现表格布局的便捷工具,尤其适用于小规模、固定数量的行和列。了解其使用方法和属性,...

    Android中使用TableLayout设计的厨房装修效果的代码清单.pdf

    在本文中,我们将深入探讨如何使用TableLayout来设计一个厨房装修效果的应用,并参考给出的代码清单。 TableLayout是LinearLayout的一个子类,它允许开发者创建多行多列的布局。通过定义TableRow对象,我们可以创建...

    Android使用TableLayout动态布局实例

    `TableLayout`是Android提供的一种用于创建表格样式的布局,尤其适合展示数据或者组织组件。本篇文章将深入探讨如何使用`TableLayout`进行动态布局,结合实例来理解其用法。 `TableLayout`是`LinearLayout`的扩展,...

    018集-TableLayout视频教程

    在Android应用设计中,TableLayout常用于展示数据或者创建形式化的表单。 在讲解开始,教程可能首先介绍了如何在XML布局文件中引入TableLayout元素。TableLayout的声明通常包括以下属性: 1. `android:...

    安卓 tablelayout布局实例

    在本教程中,我们将深入探讨`TableLayout`的使用,包括其基本概念、属性以及如何在实际项目中创建和操作表格布局。 `TableLayout`是Android `LinearLayout`的一个子类,它提供了行列结构来排列子视图,通常这些子...

    利用TableLayout自定义可点击表格

    6. **响应式设计**:根据屏幕尺寸和方向,可以使用`GridLayout`或`FlexboxLayout`作为替代方案,以适应不同的设备。 总之,通过`TableLayout`,我们可以轻松地在Android应用中创建可点击的表格。通过监听点击事件,...

    TableLayout数据显示

    在Android应用设计中,TableLayout常被用来构建有结构的数据展示或者创建复杂的用户界面。以下是对TableLayout的详细说明: 1. **TableLayout基本概念**: TableLayout是一个线性布局的扩展,它允许开发者在垂直...

    Android中使用TableLayout设计的厨房装修效果练习题要求说明.pdf

    在Android开发中,TableLayout是Android布局管理器之一,它允许开发者以表格的形式组织视图组件,这在设计用户界面时特别有用,尤其当需要排列多个控件并且保持一定的对齐方式时。在这个厨房装修效果的练习题中,...

    TableLayout实现gridview嵌套gridview效果

    本篇文章将详细探讨如何利用`TableLayout`实现`GridView`的嵌套效果,以此达到更复杂的界面设计需求。 `TableLayout`是一个基于`LinearLayout`的容器,它允许你以行和列的形式组织子视图。每个子视图通常是一个`...

    tablelayout for swing

    标题中的"tablelayout for swing"指的是在Java Swing中使用TableLayout进行界面布局管理的知识...此外,了解TableLayout与Swing其他布局管理器的交互和组合使用也是很重要的,这样可以更好地优化和控制应用的界面设计。

    TableLayout.zip

    TableLayout是Java编程中一种强大的布局管理器,主要用于在Swing应用中组织和排列组件。在Java GUI设计中,布局管理器是至关重要的,因为它们决定...通过熟练掌握TableLayout的用法,可以大大提高GUI设计的效率和质量。

    TableLayout,实现动态添加和删除行,并实现统计表格中的数据

    【TableLayout详解】 TableLayout是Android布局管理器中的一种,它是线性布局(LinearLayout)的扩展,主要用于构建类似电子表格的二...在实际开发中,结合其他组件和设计模式,TableLayout能更好地满足各种复杂需求。

    TableLayout_Project

    综上所述,TableLayout_Project为我们提供了一个学习和实践TableLayout的平台,通过对项目的理解和博客的阅读,开发者可以进一步提升在Android界面设计中的布局技能,熟练掌握TableLayout的使用方法和技巧。...

    TableLayout+ViewPager+Fragment滑动标题栏索引

    - 兼容性:考虑到不同设备的屏幕尺寸和分辨率,要确保设计的布局在各种设备上都能良好地呈现。 - 可访问性:遵循Android的可访问性指南,确保视力障碍或其他残障用户也能方便地使用这个功能。 综上所述,...

    TableLayout伸缩列

    5. **扩展性**:TableLayout可以嵌套在其他布局中,如LinearLayout或RelativeLayout,以实现更复杂的界面设计。 在实际项目中,TableLayout常用于创建表单、展示数据列表或者创建选项卡式界面。尽管随着Material ...

    TableLayout不显示列

    TableLayout是Android开发中一种常用的布局管理器,它允许开发者以表格的形式排列控件,非常适合创建网格或行列结构的用户界面。在Android Studio中,TableLayout通常被XML布局文件用于组织视图,使得屏幕元素可以...

    android 利用TableLayout自动生成表格

    可以考虑使用RecyclerView配合GridLayoutManager作为替代方案,以提高滚动性能。 总结来说,Android的TableLayout是一个强大的布局工具,用于构建二维表格结构。通过XML或程序动态创建,我们可以创建自定义的表格,...

Global site tag (gtag.js) - Google Analytics