2

我有一些 Android 开发经验,现在我决定学习一些新的东西 - 为 Kindle 开发(不是基于 Android 的 Kindle Fire)。

Amazon 提供KDK + Personal Basis Profile 1.1.2 (JSR 217)作为平台。

我的问题是,如何设计 UI。我对awt没有任何经验(只是在java swing中做了一些应用程序),但这似乎不是一个大问题,因为它很简单......主要问题是'替换'android's 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只有在添加KLabelusing时才能正常工作pages.addItem()。仅插入KLabelMultiline会导致分页功能发挥作用(而不是显示标签 0-12,而是在单行中“显示”0-26,但 kindle 的屏幕仅显示 14-26)。尝试插入KPanel带有标签和 2 个按钮的整体会导致列出标签,然后为每个项目列出一个空行,没有任何按钮...显示相同KPanel的外部页面工作正常 - 我可以看到标签和两个按钮...

我几乎可以肯定遗漏了一些东西是我的错,但是由于 KDK 上可用的信息很少,我无法找到它......有人可以帮我吗?谢谢

4

1 回答 1

0

尝试覆盖对构造函数的getPreferredSizegetMinimumSizegetMaximumSize调用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);
  }
};
于 2013-02-07T23:14:57.647 回答