tab与list配合使用
来源:技术人生 责任编辑:栏目编辑 发表时间:2013-07-02 01:01 点击:次
tab与list配合使用会使效果增添不少,可是在之前没有接触过此框架的要做到很好却是有点小难度,以下就按我在开发过程中遇到的问题,一一罗列出来,并附上解决的方法。
如图:
问题一:首先我从登陆窗体进入时,我不希望每个Tab选项卡中的List中都去服务器取数据,这样会导致加载时间过长导致用户等待过久,因为Tab是在窗体初始化的时候就要把List中的数据添加进去,如果要分别加载数据则在tab事件中必须重新加载之前的数据。
解决方法:此问题的关键是Container的使用,我们可以为每个选项卡添加一个Container,然后触发tab事件时我们改变的只是Container中的数据及控件,所以这样最完美了解决了存在的问题,创建list的代码就不重复了,需要请看这里。
// 个人邮件
String[][] mailPersonal = GetMailPersonal();
MailInfo[] mailInfoPersonal = GetMainInfoArrary(mailPersonal, true);
containerPersonal = new Container();
containerPersonal.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
if (mailInfoPersonal != null)
containerPersonal.addComponent(createList(mailInfoPersonal,
List.VERTICAL, new ContactsRenderer()));
else {
Label label = new Label("您的个人邮件没有数据!");
containerPersonal.getStyle().setMargin(Component.TOP, 60);
containerPersonal.setLayout(new FlowLayout(Component.CENTER));
containerPersonal.addComponent(label);
}
tab.addTab("个人邮件", getRes().getImage("SJX.gif"), containerPersonal);
// 群发邮件,未加载数据赋空数值
String[][] mailGroup = { { "正在加载", "", "", "", "", "", "" } };
MailInfo[] mailInfoGroup = GetMainInfoArrary(mailGroup, false);
final Container ContainerGroup = new Container();
ContainerGroup.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
ContainerGroup.addComponent(createList(mailInfoGroup, List.VERTICAL,
new ContactsRenderer()));
tab.addTab("群发邮件", getRes().getImage("SJX.gif"), ContainerGroup);
// 保留邮件,未加载数据赋空数值
String[][] mailSave = { { "正在加载", "", "", "", "", "", "" } };
MailInfo[] mailInfoSave = GetMainInfoArrary(mailSave, true);
final Container ContainerSave = new Container();
ContainerSave.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
ContainerSave.addComponent(createList(mailInfoSave, List.VERTICAL,
如图:
问题一:首先我从登陆窗体进入时,我不希望每个Tab选项卡中的List中都去服务器取数据,这样会导致加载时间过长导致用户等待过久,因为Tab是在窗体初始化的时候就要把List中的数据添加进去,如果要分别加载数据则在tab事件中必须重新加载之前的数据。
解决方法:此问题的关键是Container的使用,我们可以为每个选项卡添加一个Container,然后触发tab事件时我们改变的只是Container中的数据及控件,所以这样最完美了解决了存在的问题,创建list的代码就不重复了,需要请看这里。
// 个人邮件
String[][] mailPersonal = GetMailPersonal();
MailInfo[] mailInfoPersonal = GetMainInfoArrary(mailPersonal, true);
containerPersonal = new Container();
containerPersonal.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
if (mailInfoPersonal != null)
containerPersonal.addComponent(createList(mailInfoPersonal,
List.VERTICAL, new ContactsRenderer()));
else {
Label label = new Label("您的个人邮件没有数据!");
containerPersonal.getStyle().setMargin(Component.TOP, 60);
containerPersonal.setLayout(new FlowLayout(Component.CENTER));
containerPersonal.addComponent(label);
}
tab.addTab("个人邮件", getRes().getImage("SJX.gif"), containerPersonal);
// 群发邮件,未加载数据赋空数值
String[][] mailGroup = { { "正在加载", "", "", "", "", "", "" } };
MailInfo[] mailInfoGroup = GetMainInfoArrary(mailGroup, false);
final Container ContainerGroup = new Container();
ContainerGroup.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
ContainerGroup.addComponent(createList(mailInfoGroup, List.VERTICAL,
new ContactsRenderer()));
tab.addTab("群发邮件", getRes().getImage("SJX.gif"), ContainerGroup);
// 保留邮件,未加载数据赋空数值
String[][] mailSave = { { "正在加载", "", "", "", "", "", "" } };
MailInfo[] mailInfoSave = GetMainInfoArrary(mailSave, true);
final Container ContainerSave = new Container();
ContainerSave.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
ContainerSave.addComponent(createList(mailInfoSave, List.VERTICAL,
相关新闻>>
- 发表评论
-
- 最新评论 更多>>