web-dev-qa-db-de.com

Android ConstraintLayout-Ränder funktionieren nicht ordnungsgemäß

Wie im Bild zu sehen, werden die Ansichtsfelder an der aktuellen Position gerendert, der Inhalt jedoch nicht. Die Textansichten sowie die Bildansichten werden so gerendert, als wären keine Ränder vorhanden. Wenn ich die App starte, werden sie auch nicht richtig gerendert (zweites Bild). Ich weiß nicht, was es verursachen könnte.  Editor Preview  Live Demo

BEARBEITEN: Ich habe vergessen, mein XML einzuschließen:

<?xml version="1.0" encoding="utf-8"?>
<com.example.Android.stundenplanexample.dynamic_recyclerview.ExpandingCardView
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    xmlns:card_view="http://schemas.Android.com/apk/res-auto"
    Android:id="@+id/card_view"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    card_view:cardCornerRadius="2dp"
    card_view:cardElevation="2dp"
    Android:layout_margin="12dp">

    <Android.support.constraint.ConstraintLayout
        Android:id="@+id/constraint"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content">

        <ImageView
            Android:layout_margin="8dp"
            Android:layout_width="24dp"
            Android:layout_height="24dp"
            Android:layout_weight="0"
            Android:src="@drawable/ic_expand_more_black_24dp"
            Android:id="@+id/card_expand_toggle"
            tools:ignore="ContentDescription"
            Android:layout_marginTop="16dp"
            card_view:layout_constraintTop_toTopOf="parent"
            card_view:layout_constraintRight_toRightOf="parent"
            Android:layout_marginEnd="24dp" />

        <TextView
            Android:layout_margin="8dp"
            Android:layout_weight="1"
            Android:textAppearance="@Android:style/TextAppearance.Material.Medium"
            Android:textColor="?android:attr/textColorPrimary"
            Android:layout_width="42dp"
            Android:layout_height="wrap_content"
            Android:text="@string/card_expand_string"
            Android:id="@+id/textView3"
            card_view:layout_constraintTop_toTopOf="parent"
            Android:layout_marginStart="16dp"
            card_view:layout_constraintLeft_toLeftOf="parent"
            Android:layout_marginTop="16dp" />

        <TextView
            Android:layout_height="wrap_content"
            Android:id="@+id/extra_information"
            Android:layout_width="wrap_content"
            tools:text="ToleToleToleInfo"
            card_view:layout_constraintLeft_toLeftOf="@+id/textView3"
            Android:layout_marginTop="8dp"
            card_view:layout_constraintTop_toBottomOf="@+id/textView3"
            card_view:layout_constraintBottom_toBottomOf="parent"
            Android:layout_marginBottom="16dp" />
    </Android.support.constraint.ConstraintLayout>

</com.example.Android.stundenplanexample.dynamic_recyclerview.ExpandingCardView>
6
BBotMerlin

Ich sehe ein bestimmtes Problem und ein mögliches Problem.

Das endgültige Problem ist, dass Ihr textView3 diese Attribute angibt:

Android:layout_margin="8dp"
Android:layout_marginTop="16dp"
Android:layout_marginStart="16dp"

Dies setzt nicht den Anfang/Anfang auf 16 dB und das Ende/Ende auf 8 dB. Es bewirkt lediglich, dass die Attribute marginTop und marginStart ignoriert werden.

Das mögliche Problem ist, dass Sie angeben 

Android:layout_marginStart="16dp"

geben Sie jedoch nicht auch marginLeft an. Wenn Sie Pre-API 17-Geräte unterstützen möchten, müssen Sie sowohl marginStart als auch marginLeft angeben (vorausgesetzt, Sie entfernen das margin-Attribut).

1
Ben P.