我需要为我的应用程序的FlexTable小部件实现“分页”:
这是我的初始代码,它将Product呈现为3列单元格:
public void renderProducts(Map<Long, Product> mp) {
int i = 0;
int j = 0;
Iterator it = mp.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pairs = (Map.Entry)it.next();
Product product = (Product) pairs.getValue();
ProductWidget pw = productInstance.get();
pw.setTitle(product.getName());
pw.setImageUrl(product.getImageUrl());
pw.setContent(product.getInfo());
pw.setUrl(product.getUrl()); // "More" button anchor
List<String> feats = product.getFeatures();
for (String f : feats){
pw.addFeature(f);
}
flextable.setWidget(i, j, pw);
j++;
if (j == 3){
i++;
j = 0;
}
it.remove(); // avoids a ConcurrentModificationException
}
}
需要在N页中进行分页。我最初的想法是将地图分成地图列表......
我的意思是,FlexTable有“数据源”吗?
答案 0 :(得分:1)
如果您确实需要使用FlexTable并提供分页,最好使用单元格表so older question。简单的寻呼机可以实现您想要的所有功能。
如果您想使用FlexTable,您必须提供自己的寻呼机实现。这可以通过各种方式完成,使用下一个和上一个按钮或标签添加点击处理程序并进行迭代。
由于没有以任何方式订购商品,地图也不是可行的方式。我会将所有项目添加到列表中,并将所述列表用作我的数据源。
您还需要一种方法来保存当前页面和项目/页面(如果您希望在页面更改后保存它,可能是静态变量)