我有一些Android开发经验,现在我决定学习一些新东西 - 开发Kindle(不是基于Android的Kindle Fire)。
亚马逊提供KDK + Personal Basis Profile 1.1.2 (JSR 217)作为平台。
我的问题是,如何设计UI。我没有任何使用awt的经验(只是在java swing中使用了som应用程序),但这似乎不是一个大问题,因为它很简单......主要问题是'替换'android的ListView
我尝试使用名为KPages
的组件。但是,我不能在页面模型中添加除KLabel
之外的任何内容......
PageProvider pp = PageProviders.createKBoxLayoutProvider(KBoxLayout.PAGE_AXIS);
final KPages pages = new KPages(pp);
for (int i = 0; i < 40; i++) {
final KPanel listItem = new KPanel();
// listItem.add(new KLabelMultiline("label numero " + i + " is not very good, because it will be displayed over more than one line and 'pages' won't be able to deal with it"));
listItem.add(new KLabel("label numero " + i + " is very good, because it won't be displayed over more than one line and 'pages' will be able to deal with it"));
listItem.add(new KButton("read"));
listItem.add(new KButton("edit"));
pages.addItem(listItem);
}
context.getRootContainer().add(pages);
上面的示例代码显示了我列出一些项目的努力。 KPages
仅在使用KLabel
添加pages.addItem()
时才有效。只需插入KLabelMultiline
会导致分页变为多功能(而不是显示标签0-12,它'显示'0-26,如单行,但是kindle的屏幕仅显示14-26)。尝试插入带有标签和2个按钮的整个KPanel
导致列出标签后面跟着每个项目的一个空行,没有任何按钮...显示相同的KPanel
外部页面工作正常 - 我可以看到标签和两个按钮......
我几乎可以肯定,留下一些东西是我的错,但是由于KDK上的信息很少,我无法找到它......有人可以帮我一把吗?感谢
答案 0 :(得分:0)
尝试覆盖对getPreferredSize
的构造函数的getMinimumSize
,getMaximumSize
和KPanel
调用。将width
和height
设置为您的屏幕大小。
final KPanel listItem = new KPanel() {
public Dimension getPreferredSize() {
return new Dimension(width, height);
}
public Dimension getMinimumSize() {
return new Dimension(width, height);
}
public Dimension getMaximumSize() {
return new Dimension(width, height);
}
};