Wie können Bildschaltflächen in ein horizontales lineares Layout eingebunden werden?

8

Gibt es eine Möglichkeit, Bildschaltflächen in horizontales lineares Layout einzubinden? Oder gibt es eine andere Möglichkeit, die folgende Sache zu tun?

Ich habe sechs Bildschaltflächen. Angenommen, diese Schaltflächen erscheinen in einem Gerät mittlerer Auflösung wie folgt:

%Vor%

Ich möchte, dass diese Schaltflächen auf einem Tablet oder einem anderen Gerät mit hoher Auflösung angezeigt werden:

%Vor%

oder wie folgt:

%Vor%

gemäß Gerätebildschirmen. Bitte helfen.

Hier ist meine Haupt-XML-Datei:

%Vor%     
Anik Chakraborty 02.01.2013, 04:42
quelle

3 Antworten

10

Sie könnten FlowLayout dafür verwenden.

Überprüfen Sie das

BEARBEITET

Fügen Sie Ihrem Projekt die erforderliche Klasse, Stile und Attribute aus dem Link hinzu, den ich Ihnen gegeben habe. Und verwenden Sie dieses Layout, indem Sie es Ihrem XML-Layout hinzufügen.

Im Git-Projekt erwähnt .. Kopieren Sie alle Dateien von Git Project in Ihre Projekte

User FlowLayout stattdessen LinearLayout in XML

%Vor%

Und fügen Sie dann Ihre untergeordnete Ansicht in diesem FlowLayout hinzu, möglicherweise nur in XML oder zur Laufzeit.

Andere unterstützte Parameter sind:

%Vor%

Ich habe eine Unterstützung hinzugefügt, um den Inhalt einer Zeile anzupassen. Holen Sie sich meine Github-Quelle

Damit das funktioniert. Sie müssen ein weiteres Attribut als fitContent für Ihr Layout true angeben.

f: fitContent="true"

Beantworten Sie Ihre Kommentare

f: verticalSpacing="12dip" - Wird verwendet, um den vertikalen Abstand für das gesamte FlowLayout anzugeben. h. Jede untergeordnete Ansicht / Schaltfläche hat den vertikalen Abstand.

Beispiel

%Vor%

Dagegen wird f: layout_verticalSpacing="32dip" für eine untergeordnete Schaltfläche angegeben, da wir die Gewichtung angeben

Beispiel

%Vor%     
Vivek Khandelwal 02.01.2013, 04:45
quelle
0

Im Allgemeinen würden Sie alternative Layout-XML-Dateien für verschiedene Konfigurationen erstellen. Jeder dieser Ordner enthält eine XML-Datei mit demselben Namen (den Sie verwenden, wenn Sie setContentView() in Ihrer Aktivität aufrufen).

%Vor%

Wenn Ihr Projekt diese Ordner nicht besitzt, können Sie sie selbst erstellen. Dies teilt dem System zur Laufzeit mit, dass basierend auf der kleinsten verfügbaren Breite des Geräts in dichteunabhängigen Pixeln eines dieser drei Layouts verwendet wird. sw600dp wird empfohlen, um "große Bildschirme" wie 7-Zoll-Tablets anzugeben; sw720dp wird empfohlen, um "xlarge screens" wie 10-Zoll-Tablets anzugeben. Diese Zahlen können beliebig sein.

Sie könnten auch tun, wie Vivek Kandelwal vorgeschlagen hat, eine FlowLayout-Implementierung zu verwenden, aber das kann oder kann nicht genau so funktionieren, wie Sie es wünschen.

    
Karakuri 02.01.2013 04:55
quelle
0

Ich habe Details für eine einfache und relativ prägnante Lösung hier gepostet:

Ссылка

Zusammenfassung :

  • Die Lösung basiert auf diesem gemeinsamen Projekt: Ссылка

  • In meinem Beitrag wird erläutert, wie Sie einen Fehler umgehen können, der bei der Verwendung dieses Beispiels aufgetreten ist

gnB 22.04.2014 19:21
quelle