2017-01-26 3 views
4

Ich habe ein ziemlich einfaches Layout: A ConstraintLayout den gesamten Bildschirm füllt, mit einer großen CardView, dass an der Spitze, eine ImageView hat, die halb auf den über die CardView und die andere Hälfte (eigentlich nicht die Hälfte, aber Sie bekommen den Punkt).Zentrum mit fester Größe Image horizontal in Mutter ConstraintLayout

Allerdings gibt es zwei Probleme: die ImageView Sticks auf der linken Seite des Elternteils und ich weiß nicht, wie man es horizontal zentriert - alles, was ich bei Google finden kann, sind Ketten für mehrere Elemente, aber ich möchte nur eine zentriert .

Der Layout-Editor funktioniert extrem schlecht für mich. Meine erste Beschwerde ist, dass ich keine Beschränkungen für die Eltern erstellen kann. Dann habe ich versucht, die ImageView horizontal im Elternteil zu zentrieren, indem Sie auf die Schaltfläche "Center in Parent" klicken. Dies erhöht die Breite der CardView, überhaupt keinen Effekt auf die ImageView.

Während ich dabei bin, wie könnte ich die ImageView oben auf der CardView bestellen?

Hier wird das Layout:

<?xml version="1.0" encoding="utf-8"?> 
<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="@color/colorPrimaryDark"> 
<android.support.v7.widget.CardView 
    android:layout_width="0dp" 
    android:layout_height="0dp" 
    android:layout_marginBottom="32dp" 
    android:layout_marginEnd="32dp" 
    android:layout_marginStart="32dp" 
    android:layout_marginTop="160dp" 
    app:cardCornerRadius="12dp" 
    app:cardElevation="32dp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toTopOf="parent"> 

</android.support.v7.widget.CardView> 

<ImageView 
    android:layout_width="200dp" 
    android:layout_height="200dp" 
    android:layout_marginTop="40dp" 
    android:scaleType="centerCrop" 
    android:src="@drawable/re_zero" 

    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 

Dank!

Antwort

8

Nach docs:

Wenn Sie eine Einschränkung auf beiden Seiten einer Ansicht hinzuzufügen (und die Ansichtsgröße für die gleiche Dimension ist entweder „feste“ oder „wrap Inhalt“), die Ansicht wird standardmäßig zwischen den beiden Ankerpunkten zentriert.

Die folgende Einschränkung wurde hinzugefügt: ImageView.

app:layout_constraintEnd_toEndOf="parent" 

Auch eine höhere Höhe als die CardView Zugabe fixiert den Z-Index, da die Höhe der z-Index überschreibt.

+0

fantastische Lösung! hatte Schwierigkeiten, dies herauszufinden – hcpl

Verwandte Themen