Restricción del layout de la falla intermitente del layout

ConstraintLayout falla de forma intermitente al layout correctamente cuando una vista se establece de GONE a VISIBLE poco después de que se reanude una actividad:

 <android.support.constraint.ConstraintLayout android:id="@+id/constraint_layout" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"/> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" app:layout_constraintLeft_toRightOf="@id/text1" app:layout_constraintTop_toTopOf="parent"/> </android.support.constraint.ConstraintLayout> override fun onResume() { super.onResume() text1.text = "" text1.visibility = View.GONE text2.text = "" text2.visibility = View.GONE text1.postDelayed({ text1.text = "Hello" text1.visibility = View.VISIBLE text2.text = "World" text2.visibility = View.VISIBLE }, 100 ) } 

Código fuente completo aquí

La instrumentación de la class TextView revela que las instancias de TextView se miden correctamente, pero su ancho se establece en 0 cuando se distribuyen.

Me pregunto si el LinearSystem no es determinista. ¿Hay maps que se repiten cuando el order de iteración no está definido? (He visto esto con Cassowary)

Estoy buscando su statement en la página de github :

ConstraintLayout falla de forma intermitente al layout correctamente cuando una vista se establece de GONE a VISIBLE poco después de que se reanude una actividad

Revisé tu proyecto y cambié 100ms a 1000ms. Aquí está el resultado:

enter image description here

Me parece que espera que en el momento en que realice textview.setVisibility(View.GONE) espere que la vista no sea visible. Esa no es la forma en que funciona Android. Simplemente está publicando un evento en el MessageQueue que Looper manejaría más adelante, y estos 100ms no son suficientes para que el ojo humano vea esos cambios.

Este fue un error en el RestraintLayout corregido en constraint-layout:1.1.0-beta2 https://issuetracker.google.com/issues/65613481

  • ¿Cómo puedo configurar FlexBox.alignItems para flex_end programáticamente?
  • Problema de context al usar Anko DSL dentro del adaptador personalizado para ListView
  • Obtener el porcentaje de orientación en píxeles mediante progtwigción
  • Usando la variable de otro file Kotlin
  • ¿Cómo explicar este extraño comportamiento al establecer márgenes programáticamente a una vista dentro de RelativeLayout?
  • Conversión de layout lineal a cuadrícula
  • Cómo establecer el ancho del borde FloatingActionButton con Anko
  • Cómo cambiar el ancho de un elemento secundario FlexBox después de agregarlo a FlexBox
  • Después de agregar layouts mediante progtwigción, ¿cómo puedo cambiar la vista de text "#" con el button?