今天有个别的部门同事跑来问我, 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的函数, 这样就省去很多麻烦了.
分享到:
相关推荐
在Android开发中,TableLayout是布局管理器的一种,它允许开发者以表格的形式排列视图(Views)。...通过研究"AndroidEggTableBorder"源码,开发者可以深入理解这一过程,提升自己的Android UI设计技能。
java TableLayout布局
在Android开发中,创建用户界面是一项重要任务,而表格布局(TableLayout)是实现结构化数据展示的有效方式。本文将详细介绍如何使用TableLayout来构建一个功能...记得,始终以用户体验为中心,设计简洁易用的界面。
对于大数据集,考虑使用ListView或RecyclerView,它们使用ViewHolder模式提高滚动性能。 总的来说,TableLayout是Android中实现表格布局的便捷工具,尤其适用于小规模、固定数量的行和列。了解其使用方法和属性,...
在本文中,我们将深入探讨如何使用TableLayout来设计一个厨房装修效果的应用,并参考给出的代码清单。 TableLayout是LinearLayout的一个子类,它允许开发者创建多行多列的布局。通过定义TableRow对象,我们可以创建...
`TableLayout`是Android提供的一种用于创建表格样式的布局,尤其适合展示数据或者组织组件。本篇文章将深入探讨如何使用`TableLayout`进行动态布局,结合实例来理解其用法。 `TableLayout`是`LinearLayout`的扩展,...
在Android应用设计中,TableLayout常用于展示数据或者创建形式化的表单。 在讲解开始,教程可能首先介绍了如何在XML布局文件中引入TableLayout元素。TableLayout的声明通常包括以下属性: 1. `android:...
在本教程中,我们将深入探讨`TableLayout`的使用,包括其基本概念、属性以及如何在实际项目中创建和操作表格布局。 `TableLayout`是Android `LinearLayout`的一个子类,它提供了行列结构来排列子视图,通常这些子...
6. **响应式设计**:根据屏幕尺寸和方向,可以使用`GridLayout`或`FlexboxLayout`作为替代方案,以适应不同的设备。 总之,通过`TableLayout`,我们可以轻松地在Android应用中创建可点击的表格。通过监听点击事件,...
在Android应用设计中,TableLayout常被用来构建有结构的数据展示或者创建复杂的用户界面。以下是对TableLayout的详细说明: 1. **TableLayout基本概念**: TableLayout是一个线性布局的扩展,它允许开发者在垂直...
在Android开发中,TableLayout是Android布局管理器之一,它允许开发者以表格的形式组织视图组件,这在设计用户界面时特别有用,尤其当需要排列多个控件并且保持一定的对齐方式时。在这个厨房装修效果的练习题中,...
本篇文章将详细探讨如何利用`TableLayout`实现`GridView`的嵌套效果,以此达到更复杂的界面设计需求。 `TableLayout`是一个基于`LinearLayout`的容器,它允许你以行和列的形式组织子视图。每个子视图通常是一个`...
标题中的"tablelayout for swing"指的是在Java Swing中使用TableLayout进行界面布局管理的知识...此外,了解TableLayout与Swing其他布局管理器的交互和组合使用也是很重要的,这样可以更好地优化和控制应用的界面设计。
TableLayout是Java编程中一种强大的布局管理器,主要用于在Swing应用中组织和排列组件。在Java GUI设计中,布局管理器是至关重要的,因为它们决定...通过熟练掌握TableLayout的用法,可以大大提高GUI设计的效率和质量。
【TableLayout详解】 TableLayout是Android布局管理器中的一种,它是线性布局(LinearLayout)的扩展,主要用于构建类似电子表格的二...在实际开发中,结合其他组件和设计模式,TableLayout能更好地满足各种复杂需求。
综上所述,TableLayout_Project为我们提供了一个学习和实践TableLayout的平台,通过对项目的理解和博客的阅读,开发者可以进一步提升在Android界面设计中的布局技能,熟练掌握TableLayout的使用方法和技巧。...
- 兼容性:考虑到不同设备的屏幕尺寸和分辨率,要确保设计的布局在各种设备上都能良好地呈现。 - 可访问性:遵循Android的可访问性指南,确保视力障碍或其他残障用户也能方便地使用这个功能。 综上所述,...
5. **扩展性**:TableLayout可以嵌套在其他布局中,如LinearLayout或RelativeLayout,以实现更复杂的界面设计。 在实际项目中,TableLayout常用于创建表单、展示数据列表或者创建选项卡式界面。尽管随着Material ...
TableLayout是Android开发中一种常用的布局管理器,它允许开发者以表格的形式排列控件,非常适合创建网格或行列结构的用户界面。在Android Studio中,TableLayout通常被XML布局文件用于组织视图,使得屏幕元素可以...
可以考虑使用RecyclerView配合GridLayoutManager作为替代方案,以提高滚动性能。 总结来说,Android的TableLayout是一个强大的布局工具,用于构建二维表格结构。通过XML或程序动态创建,我们可以创建自定义的表格,...