2017-02-11 3 views
6

auf der neuesten Version von Constraint Layout Beta 5, match_parent löst eine Ausnahme mit "MATCH_PARENT nicht in ConstraintLayout unterstützt" zu unterdrücken: in der Release-InfoWie Einschränkung Layout Fehler

android.view.InflateException: Binary XML file line #12: MATCH_PARENT is not supported in ConstraintLayout 

Wie bereits erläutert:

"(...) sein Verhalten undefiniert. Um das Risiko von Fehlern zu reduzieren, werfen wir jetzt eine Ausnahme, wenn wir darauf stoßen." - source

Sie schlugen vor, dass die korrekte Verwendung 0DP (MATCH_CONSTRAINT) zu verwenden wäre, aber da ich ein Fach-Layout in meinem Constraint-Layout haben, die Einstellung der Breite 0DP Würfen „DrawerLayout muss mit MeasureSpec.EXACTLY gemessen werden " Error.

Also meine Frage ist, wie kann ich den Fehler unterdrücken "MATCH_PARENT wird in ConstraintLayout nicht unterstützt"?

+0

Sie können nicht. Selbst wenn Sie einen Weg finden würden, würde es wahrscheinlich nicht funktionieren. Und es ist nicht versprochen, an allen Versionen der Bibliothek zu arbeiten. Du solltest es einfach nicht tun. –

Antwort

1

Mindestens ab Version erfolgen 1.1.0-beta3 des Beschränkungslayouts,

Sie können match_parent ohne Probleme verwenden.

es jedoch immer noch empfohlen, dass Sie verwenden:

android:layout_width="0dp" 
app:layout_constraintStart_toStartOf="parent" 
app:layout_constraintEnd_toEndOf="parent" 
+2

Es ist erwähnenswert, dass die Leistung bei der Verwendung von match_parent sehr hoch sein kann - ich hatte ein Layout, wo ich Match_Parent für Element in View Pager verwendet und es arbeitete kaum auf etwas langsameren Geräten (wie es würde Sekundenschnelles Scrollen) - das Ändern auf 0dp und die Beschränkung auf den linken/rechten Elternteil löste dieses Problem – AntekM

12

Der Ersatz von

android:layout_width="match_parent" 

in einem ConstraintLayout mit

android:layout_width="0dp" 
app:layout_constraintLeft_toLeftOf="parent" 
app:layout_constraintRight_toRightOf="parent" 

dh Zwangs das Widget auf der rechten und linken Rand des Mutter

+1

Ich hatte das bereits versucht, aber da ich ein DrawerLayout in meinem ConstraintLayout habe, habe ich den "DrawerLayout muss mit MeasureSpec.EXACTLY gemessen" Fehler, wie in meiner Frage erwähnt. Ich endete mit einem LinearLayout. – Marcola

+0

Danke für das Feedback, schön zu wissen –

Verwandte Themen