在Kindle KDK中设计UI(扩展java.awt)

时间:2013-02-06 17:59:40

标签: java android-layout awt kindle kindle-kdk

我有一些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上的信息很少,我无法找到它......有人可以帮我一把吗?感谢

1 个答案:

答案 0 :(得分:0)

尝试覆盖对getPreferredSize的构造函数的getMinimumSizegetMaximumSizeKPanel调用。将widthheight设置为您的屏幕大小。

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);
  }
};