Neu bei Codename One, Übergang von Android "native" Java-Entwicklung.Codename One - Unerwünschte Auffüllung/Abstand in ScaleImageLabel
Ich versuche ein SideMenu-Design zu erstellen, das dem Material-Seitenmenü ähnelt, wie es in fast jeder Google-App (z. B. Play Store) zu sehen ist. Beginnend mit einem Header-Bild, kann ich nicht scheinen, von einem gewissen Polsterung auf der Ober- und Unterseite loszuwerden:
Die weißen Balken am oberen und unteren unerwünscht sind. Aktuelle Code:
public void start() {
if (current != null) {
current.show();
return;
}
home = new Home();
// SideMenu header BG image
Image headerImage = theme.getImage("bg_navdrawer_header.png");
ScaleImageLabel sideMenuHeaderBg = new ScaleImageLabel(headerImage);
sideMenuHeaderBg.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);
// SideMenu header app title
Label sideMenuHeaderLabel = new Label("Title");
sideMenuHeaderLabel.setUIID("SideMenuHeaderTitle");
Container sideMenuHeader = new Container();
sideMenuHeader.add(LayeredLayout.encloseIn(sideMenuHeaderBg, FlowLayout.encloseBottom(sideMenuHeaderLabel)));
home.getToolbar().addComponentToSideMenu(sideMenuHeader);
home.show();
}
Die weißen Balken verschwinden, wenn ich BACKGROUND_IMAGE_SCALED_FILL verwenden, aber dann ist es nicht Seitenverhältnis halten - es erstreckt sich die beiden weißen Flächen zu füllen. (BEARBEITEN: Es tut Seitenverhältnis beibehalten, aber es schneidet die längere Dimension). Ich habe versucht, die UIID auf "Container" zu setzen, um alles zu ändern, macht keinen Unterschied.
Irgendwelche Ideen?
UPDATE:
Aus irgendeinem Grund ruft setWidth auf dem ScaledImageView unmittelbar nach dem Hintergrundtyp es gelöst Einstellung. Egal wie breit die Breite ist, eine beliebige Zahl und das "Letterboxing" ist weg und die Höhe ist wie es sein soll.
ScaleImageLabel sideMenuHeaderBg = new ScaleImageLabel(headerImage);
sideMenuHeaderBg.setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FILL);
sideMenuHeaderBg.setWidth(0);
diesen offen, wenn jemand verlassen gehen hat eine bessere Lösung oder zumindest erklären, warum dies der Fall ist, oder genau das, was meine Lösung geschieht da eher einen Hack ist als eine tatsächliche Antwort.
So FILL hält Seitenverhältnis, nur Clips die längere Dimension. Aber ich will überhaupt keinen Clipping. Ich möchte, dass es die längere Dimension * des Raumes ohne Letterboxing füllt. Woher kommt dieser Briefkasten? Ich möchte nur, dass es gut an die Oberseite passt und nicht den Leerraum an der Unterseite hat. – CosmicDan
Formatieren Sie auch 'StatusBarSideMenu' mit 0 Padding/Rand –