Android: Alternative zu AbsoluteLayout (ich wirklich brauchen, absolute Positionierung)
Ich bin versucht zu schreiben, eine Kalender-app, und ich Plane, ein raster (Woche anzeigen), die wird wahrscheinlich ein TableLayout
und direkt am Anfang, dass ich absolut die position von Ereignissen in der Startaufstellung.
Aber AbsoluteLayout
ist veraltet. Was sollte ich stattdessen verwenden?
Veranstaltungen die sich überschneiden können, und ich denke, es wäre wirklich albern, zu versuchen und verwenden Sie einen nicht das absolute layout zu erreichen, was ich will.
Vielleicht sollte ich benutzen RelativeLayout
mit einem margin-left und margin-top auf jeder der Kind-Knoten. Merkwürdig erscheint es so zu tun und ist vielleicht nicht so effizient. Ist das der beste Weg oder gibt es eine alternative?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie Ihre eigenen layout-manager implementiert, dass die Regeln, die Sie wollen.
Fand ich heraus, Sie können neu erstellen die absolute Positionierung, indem Sie Ihre untergeordneten Ansichten zu einem
RelativeLayout
und legen Sie dieRelativeLayout.LayoutParams
zu haben default-Werte, außer der Höhe, Breite, marginTop und marginLeft. Die oberen und linken Rand wird ähnlich sein, die oben und Links inAbsoluteLayout
. Auch, negative Margen werden unterstützt.Stellen Sie sicher, Konto für Bildschirm-Dichte und Breite und Ausrichtung ändert und alle anderen Vorsichtsmaßnahmen für die absolute Positionierung, die verwendet, um anwenden zu
AbsoluteLayout
Wenn Sie Probleme haben, bekommen Sie Ihre Inhalte auf überlauf über den rechten Rand des Bildschirms, versuchen Ergänzung Ihrer positiven linken Rand mit einer ebenso negativen rechten margin. (ursprüngliche Frage)
Ich würde vorschlagen, entweder geht man den einfachen Weg :
Gehen, oder die harte, aber eine viel stabiler/speedy/anpassbare Weg :
Das problem mit der Nummer 1 ist die Tatsache, dass je mehr Sie hinzufügen, Elemente in der view-Hierarchie, die mehr mit Ihrer app nehmen Sie einen performance-hit. Sagen eine konventionelle Monat Sie haben 3 Termine am Tag, Ihre Hierarchie wird gefüllt mit hundert Blick auf die sehr lange zum Rendern und schweren Gedächtnis-Weise zu.
Das problem mit der Nummer 2 : es ist viel schwieriger, code auf den ersten. Wenn Sie schreiben Ihre eigenen layoutmanager nicht, gehen surfaceview oder openGL.
RelativeLayout
und mitchild.setPadding(left, top, 0, 0)
zu verschieben Sie Sie nach unten von der linken oberen Ecke?