实施安全区域与无限容器拉动刷新。

问题描述 投票:1回答:1

如何设置拉动刷新的安全区域?我有一个表单,有一个无限的容器,我在IC上设置了安全区域ic.setSafeArea(true)。我在IC中设置了安全区域ic.setSafeArea(true)。当我旋转屏幕时,安全区域被尊重(见图1)。如果我拉动屏幕刷新,安全区域不被尊重(见图2)。以下代码取自InfiniteContainerSample,我如何确保在拉动刷新后安全区域得到尊重?

图片1image 2

public void showForm() {
    Form hi = new Form("InfiniteContainer", new BorderLayout());

    Style s = UIManager.getInstance().getComponentStyle("MultiLine1");
    FontImage p = FontImage.createMaterial(FontImage.MATERIAL_PORTRAIT, s);
    EncodedImage placeholder = EncodedImage.createFromImage(p.scaled(p.getWidth() * 3, p.getHeight() * 3), false);

    InfiniteContainer ic = new InfiniteContainer() {
        @Override
        public Component[] fetchComponents(int index, int amount) {
            java.util.List<Map<String, Object>> data = fetchPropertyData("Leeds");
            MultiButton[] cmps = new MultiButton[data.size()];
            for(int iter = 0 ; iter < cmps.length ; iter++) {

                Map<String, Object> currentListing = data.get(iter);
                if(currentListing == null) {
                    return null;
                }
                String thumb_url = (String)currentListing.get("thumb_url");
                String guid = (String)currentListing.get("guid");
                String summary = (String)currentListing.get("summary");
                cmps[iter] = new MultiButton(summary);
                cmps[iter].setIcon(URLImage.createToStorage(placeholder, guid, thumb_url));
            }

            return cmps;
        }
    };
    ic.setUIID("Blue");
    ic.setSafeArea(true);
    ic.addComponent(new Label("This is a test"));
    hi.add(BorderLayout.CENTER, ic);
    hi.show();
}
int pageNumber = 1;
java.util.List<Map<String, Object>> fetchPropertyData(String text) {
    try {
        ConnectionRequest r = new ConnectionRequest();
        r.setPost(false);
        r.setUrl("http://api.nestoria.co.uk/api");
        r.addArgument("pretty", "0");
        r.addArgument("action", "search_listings");
        r.addArgument("encoding", "json");
        r.addArgument("listing_type", "buy");
        r.addArgument("page", "" + pageNumber);
        pageNumber++;
        r.addArgument("country", "uk");
        r.addArgument("place_name", text);
        NetworkManager.getInstance().addToQueueAndWait(r);
        Map<String,Object> result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(r.getResponseData()), "UTF-8"));
        Map<String, Object> response = (Map<String, Object>)result.get("response");
        return (java.util.List<Map<String, Object>>)response.get("listings");
    } catch(Exception err) {
        Log.e(err);
        return null;
    }
}
codenameone
1个回答
1
投票

谢谢你的报告。 这个问题已经被修正了 github. 它将包含在周五的下一个版本中。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.