Wie kann man den Abstand zwischen Elementen von LinearLayout nur einmal festlegen?

Ich bin vor kurzem wieder in ein Problem geraten, das ich schon in den letzten Jahren mehrmals hatte.

LinearLayout ist ein sehr bequemer layout manager . Aber was ich total vermisse, ist die Möglichkeit, einen bestimmten Raum zwischen den Elementen (wie Padding) in einem einzigen XML-Tag hinzuzufügen.

  • SharedPreferences.getInt () Ergebnisse in ClassCastException - Warum?
  • Wie bekomme ich die Ereignisse der Suche in android
  • Übergeordnete untere Ansichten verstecken sich mit übergeordneten Center-Layout-Ansicht auf öffnen Tastatur
  • Wie fügt man Quelle + javadoc für android-support-v7 hinzu?
  • Android FragmentStatePagerAdapter
  • Wie man den Fortschrittsbalkenstatus nach Prozentsatz zeigt
  • Was ich mit einem Tag verstehe, ist, dass ich in der Deklaration des LinearLayout den Abstand zwischen den Elementen definieren kann (zB in einem vertikalen LinearLayout der vertikale Raum zwischen zwei Elementen in diesem Layout).

    Ich weiß, dass ich es tun kann, indem ich das XML-Tag android:layout_marginTop oder etwas ähnliches wie jedes Element in der LinearLayout.

    Aber ich möchte es in nur einem Punkt definieren können, da der Abstand für alle Elemente gleich ist.

    Weiß jemand eine einfache Möglichkeit, dies zu tun (nicht die Umsetzung einer benutzerdefinierten LinearLayout oder so ähnlich)? Ich bevorzuge eine Lösung, die direkt in XML arbeitet, ohne die Notwendigkeit für die Codierung.

  • Ändern der Hintergrundfarbe von ListView-Elementen auf Android
  • Was kann ich tun, wenn die BufferQueue aufgegeben wurde?
  • Die ClickClick () von ClickableSpan funktioniert nicht für URLSpan?
  • Android-Benachrichtigung zeigt nicht, dass es Inhalt ist, wenn App nicht ausgeführt wird
  • Wie kann ich den Android-Quellcode in Windows OS überprüfen?
  • Android: largeHeap = "true" Konvention?
  • 5 Solutions collect form web for “Wie kann man den Abstand zwischen Elementen von LinearLayout nur einmal festlegen?”

    Die Art und Weise, die empfohlen wird, ist, einen Stil auf alle Elemente im linearen Layout anzuwenden

     android:style="@style/mystyle" <style name="mystyle"> <item name="android:layout_marginTop">10dp</item> ... other things that your elements have in common </style> 

    @ Chris-Tulips Antwort hat mir wirklich geholfen – mit guter Übung auch.

    Für diejenigen von euch, die vielleicht einen Eclipse-Fehler haben, um eine Ressource-ID für "Style" im Paket Android zu fehlen, wie ich es tat, müssen Sie den androiden Namespace nicht hinzufügen.

    Also, android: style = "xx" bringt den Fehler auf, während style = "xx" korrekt ist. Funky, aber für jeden, der diesen Fehler hat, könnte dies helfen.

    Sie sollten android:layout_marginTop hinzufügen android:layout_marginTop oder android:layout_marginLeft zu Element, das Einzug haben muss. Abhängig von android:orientation deines LinearLayout .

    Sie können Ihren einzelnen Artikel "Prototyp" in einer separaten XML-Datei definieren und dann die Elemente aus dieser Datei aufblasen, dynamisch in Code und fügen sie in Ihr lineares Layout ein.

    Sie würden dann definieren den Abstand auf die tatsächliche Element, nicht die übergeordneten LinearLayout, (als ein android:layout_marginTop zum Beispiel) und dieser Abstand würde auf alle Ihre Elemente angewendet werden, wie Sie sie aufblasen.

    BEARBEITEN:

    Container.xml:

     <LinearLayout android:id="@+id/parent" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- Your items will be added here --> </LinearLayout> 

    Item.xml:

     <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="4dp"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="This is my child" /> </LinearLayout> 

    MyActivity.java:

     // Put this in a suitable place in your Java code, perhaps // in "onCreate" or "onResume" depending on where and how // you initialize your view. You can, of course inflate // any number of instances of the item and add them to // your parent LinearLayout. LayoutInflater inflater = LayoutInflater.from(context); View item = inflater.inflate(R.layout.item, null, false); LinearLayout container = findViewById(R.id.parent); container.addView(view); 

    Ich habe mich nicht bemüht, den Code zu testen, aber es sollte funktionieren wie 🙂

    Setzen Sie benutzerdefinierte transparente ziehbar als Teiler für Ihr Layout:

     <LinearLayout android:showDividers="middle" android:divider="@drawable/divider"> 

    Neue ziehbare Ressource im Zeichnungsordner (divider.xml):

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android = "http://schemas.android.com/apk/res/android"> <size android:width = "0dp" android:height = "16dp"/> </shape> 
    Das Android ist ein Google Android Fan-Website, Alles über Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.