6

Mit allen Android-Entwicklungstools Größe, vor allem ab Version 21, ist der grafische Layout-Editor ein leistungsfähiges Werkzeug, visuelle Kontrolle über ein Layout mit Fragmenten für jede Konfiguration und Gebietsschema zu haben . Ich bin mir bewusst, dass ein typisches XML-Layout Activity statische fragment Tags mit eingebetteten Informationen für den Layout-Editor enthält, zum Beispiel tools:layout="@layout/book_collection_view_window_list".Verwenden Sie Layout-Editor effektiv auf Layouts mit nicht-statischen Fragmenten

jedoch, weil ich die Fragments in meinem Fenster dynamisch ersetzen muß, kann ich nicht die statischen fragment-Tags verwenden und stattdessen müssen Behälter bereitzustellen, wie FrameLayout, auf die ich in replace() verweisen. Gibt es so etwas wie tools:layout oder tools:context kann ich auf diesem Container verwenden, also gibt es im Layout-Editor mehr als nur schwarze Leere, und so kann ich die Design- und Verifikationsfunktionen nutzen, die es mir geben würde?

Antwort

2

Es sieht nach den documentation für FrameLayout, wie es ein Attribut ist, dass Sie auf dem FrameLayout-Tag verwenden, um eine ziehbar im Vordergrund des Viewgroup zu setzen.

Sie können dies verwenden, um das FrameLayout zu sehen, während Sie Ihre Ansicht einrichten. Ich lege oft einfach eine Farbe hinein, damit ich sehen kann, wo es relativ zum Hintergrund und anderen View s ist.

+0

Nicht ganz was ich wollte, aber es ist ein Anfang. Da Sie es bereits verwenden, könnten Sie eine Codezeile einfügen? Irgendwelche Gedanken darüber, wie man es nur im Tool und nicht beim Ausführen zeigt (vielleicht eine benutzerdefinierte Ansicht machen und es programmgesteuert machen?)? – pjv

+0

Ich würde XML wie 'android: background =" # FF0000 "' für rot verwenden. Wenn Ihre 'Fragments 'undurchsichtig sind, müssen Sie nichts tun, um die rote Farbe zu verbergen, aber ich würde es aus Ihrem XML entfernen, sobald Sie alles ausgeblendet haben. Alternativ können Sie den Hintergrund des 'FrameLayout' zur Laufzeit festlegen, wenn Sie das' Fragment' mit dem 'FragmentManager' hinzufügen, indem Sie den folgenden Code verwenden:' findViewById (R.id.frame_layout) .setBackgroundColor (Color.TRANSPARENT); ' – SDJMcHattie

+0

Eine andere Lösung besteht darin, das 'FrameLayout' in eine Subklasse einzuordnen und so etwas wie die' addChild() 'Methoden zu überschreiben und die Hintergrundfarbe vor dem Aufruf von' super() 'zu löschen. Oder, wenn es möglich ist, im Konstruktor zu identifizieren, dass das Layout vom Werkzeug instanziiert wurde, dann setze eine zufällige Farbe programmatisch auf den Hintergrund. Es scheint alles übertrieben, wenn Sie die Farbe nach dem Einrichten Ihres XML entfernen können. – SDJMcHattie