app:layout_marginBottom ist nicht gut mit android-Einschränkung layout

Gibt es einen Grund, warum die folgenden layout_marginBottom nicht funktioniert?
Allerdings, wenn ich layout_marginTop auf den zweiten Blick funktioniert es gut

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ade4ad">
    <TextView
        android:id="@+id/first"
        android:layout_width="90dp"
        android:layout_height="40dp"
        app:layout_marginBottom="10dp"
        android:background="#000"/>
    <TextView
        android:id="@+id/second"
        android:layout_width="90dp"
        android:layout_height="40dp"
        android:background="#fff"
        app:layout_constraintTop_toBottomOf="@+id/first"/>
</android.support.constraint.ConstraintLayout>
  • Füge ich genau das gleiche problem, und ich habe es behoben, indem Sie zu Ihrem ersten textView die folgende Einschränkung : app:layout_constraintBottomToBottomOf=“@+id/Sekunde“. Dann die marginBottom gut funktioniert
  • Sie müssen eine Einschränkung, die einen Puffer zu haben. ZB., für den unteren Rand untere Beschränkung ist muss. Ähnlich wie bei anderen Seiten auch.
InformationsquelleAutor Ron____ | 2017-07-05



4 Replies
  1. 24

    Um

    android:layout_marginBottom="20dp" 

    gut funktionieren, sollten Sie

    app:layout_constraintBottom_toBottomOf="parent"
    • Danke. Verbrachte eine Menge Zeit, die versuchen, damit es funktioniert. Ihre Antwort mein problem gelöst
    • Sie haben, um Begrenzungen nach oben und unten alle Ansichten wenn Sie möchten, dass die Ränder oben und unten eingehalten werden. Das gleiche geht auch mit Links und rechts Zwängen und den linken und rechten Rändern.
  2. 4

    Layout top/bottom margin funktioniert nur, wenn:

    1. Einschränkungen nicht in der gleichen Richtung um die Verbindung mit Ihrer nächsten Nachbarin Kind, wie eine einseitig verkettete Liste.
    2. Letzte Einschränkung in der Richtung muss festgelegt werden.

    In Ihrem Fall, müssen Sie „layout_constraintBottom_toXXXXX“ für jede Ansicht, in der Kette, und letzten Ansicht von unten auf eine übergeordnete Ebene.

    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#ade4ad">
        <TextView
            android:id="@+id/first"
            android:layout_width="90dp"
            android:layout_height="40dp"
            app:layout_marginBottom="10dp"
            app:layout_constraintBottom_toTopOf="@+id/second"
            android:background="#000"/>
        <TextView
            android:id="@+id/second"
            android:layout_width="90dp"
            android:layout_height="40dp"
            app:layout_marginBottom="10dp"
            app:layout_constraintBottom_toTopOf="@+id/third"
            android:background="#fff"/>
        <TextView
            android:id="@+id/third"
            android:layout_width="90dp"
            android:layout_height="40dp"
            android:background="#fff"
            app:layout_constraintBottom_toBottomOf="parent"/>
    </android.support.constraint.ConstraintLayout>

    Darüber hinaus umgekehrte Abhängigkeit ist nicht erforderlich, außer Sie wollen „layout_marginTop“ funktioniert.

  3. 2

    können Sie diesen trick, einen Raum schaffen, der Balg, align parent bottom

    <Space
       android:id="@+id/space"
       android:layout_width="wrap_content"
       android:layout_height="80dp"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintStart_toStartOf="parent" />

    und richten Sie Ihren Blick auf die Spitze der space
    app:layout_constraintBottom_toTopOf=“@+id/space“
    wie so

    <TextView
        android:id="@+id/howNext"
        style="@style/white_action_btn_no_border"
        android:layout_width="344dp"
        android:layout_height="60dp"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:text="@string/got_it_next"
        app:layout_constraintBottom_toTopOf="@+id/space"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />
  4. -2

    Dies ist nicht LinearLayout oder RelativeLayout seine ConstraintLayout so haben Sie zu geben Left, Right, Bottom, Top Constraint zu Relevanten Layout, in deinem Fall mußt Du TextView ersten Bottom_Top Einschränkung TextView Sekunde. so können Sie den Rand zwischen Zwei TextView.

    Ihr layout sollte wie folgt Aussehen.

    <android.support.constraint.ConstraintLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ade4ad">
        <TextView
            android:id="@+id/first"
            android:layout_width="90dp"
            android:layout_height="40dp" 
            android:background="#000"
            app:layout_constraintTop_toTopOf="parent" 
            app:layout_constraintLeft_toLeftOf="parent" />
        <TextView
            android:id="@+id/second"
            android:layout_width="90dp"
            android:layout_height="40dp"
            android:background="#fff"
            android:layout_marginTop="10dp"
            app:layout_constraintTop_toBottomOf="@+id/first" 
            app:layout_constraintLeft_toLeftOf="@+id/first" 
            app:layout_constraintRight_toRightOf="@+id/first" />
    </android.support.constraint.ConstraintLayout>
    • Deine Lösung nicht erklären, warum android:layout_marginBottom=“10dp“ auf den ersten Blick nicht funktioniert (auch mit deinem code).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.