Erweiterte Erklärung der Eigenschaften des Android-Layouts?

8

Ich bin auf der Suche nach dem richtigen Layout von Komponenten in Android. Ich bin ein erfahrener CSS / MXML-Entwickler und habe die schwierigste Zeit, die Layouteigenschaften von Android-Komponenten vollständig zu verstehen.

Eine Sache ist, ich bin nicht sicher, die Unterschiede zwischen diesen:

  • layout_margin und padding
  • layout_gravity gegen Gravitation vs. ignoreGravity

Sollten Sie eine über die andere mit linearen, Tabellen- oder relativen Layouts verwenden? Ein Beispiel für etwas, das ich gerne lernen würde, ist eine Gesamtmarge auf einem Layout mit separaten Komponenten, die sich auf die obere / mittlere / untere Seite des Bildschirms beziehen. Die SDK-Dokumente sind ein guter Anfang, aber sie zeigen nicht, wie die Dinge in verschiedenen Situationen funktionieren.

Irgendwelche Tipps, wo Sie hingehen müssen, um ein komplexeres / umfassenderes Layout-Design zu erlernen?

    
wajiw 17.02.2011, 21:55
quelle

2 Antworten

10

Jedes Attribut mit dem Präfix layout_ ist ein LayoutParams Attribut. Während die meisten Ansichtsattribute während der Konstruktion der Ansicht von der Ansicht selbst analysiert werden, sind LayoutParams spezielle Argumente für die übergeordnete Ansicht, die Hinweise darauf geben, wie die Größe und Position der untergeordneten Ansicht durch das übergeordnete Element festgelegt werden sollte. Welche LayoutParams in einer Ansicht gültig sind, hängt vollständig vom Typ der übergeordneten Ansicht ab.

layout_margin ist daher eine Anweisung an eine Elternansicht, die Ränder unterstützt. Es sagt, "setzen Sie so viel Platz zwischen mir und anderen Ansichten oder der Kante des Elternteils." Padding ist Platz in einer Ansicht zwischen die Kanten und der Inhalt der Ansicht.

layout_gravity ist die Schwerkraft für ein einzelnes Kind in seinem Elternteil. gravity beeinflusst den Inhalt der Ansicht, in der es angezeigt wird.

Welche Sie verwenden, hängt von dem Ergebnis ab, das Sie erzielen möchten. Wenn Sie möchten, dass ein Layout zwischen seinen Kanten und dem gesamten Inhalt einen festen Abstand hat, möchten Sie einen Abstandhalter. Wenn Sie die Kanten des Layouts um eine bestimmte Entfernung verschieben möchten, möchten Sie Ränder. Wenn Sie Layouts ohne Hintergrund festlegen, können diese beiden visuell gleichwertig sein. Wenn Sie mit der Erstellung komplexer UIs beginnen, bei denen Layouts 9-Patch-Hintergründe haben, die den Inhalt visuell gruppieren, werden die Unterschiede offensichtlich.

    
adamp 17.02.2011 22:13
quelle
-1

Ich hoffe, Sie können den Unterschied zwischen Padding und Rand sehen. Die Polsterung ist ein Innenabstand, während der Rand außerhalb des Abstandes liegt.

    
aditid1996 13.04.2017 07:07
quelle