Я пытаюсь реализовать простой сценарий: нажмите на кнопку, чтобы показать / скрыть представление (зависимость). Когда представление (зависимость) отображается, переместите другое представление вниз. Но onDependentViewChanged вызывается только один раз ... Пожалуйста, помогите мне решить эту проблему.
<View
android:id="@+id/child"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|top"
app:layout_behavior=".behavior.MoveDownBehavior">
<CustomizedView
android:id="@+id/dependency"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|center_horizontal"
android:visibility="gone" />
class MoveDownBehavior<V : View>(context: Context, attrs: AttributeSet) :
CoordinatorLayout.Behavior<V>(context, attrs) {
// Rest of the code is the same
override fun layoutDependsOn(parent: CoordinatorLayout, child: V, dependency: View): Boolean {
return dependency is CustomizedView
}
override fun onDependentViewChanged(
parent: CoordinatorLayout,
child: V,
dependency: View
): Boolean {
Timber.e("dependency.visibility = ${dependency.visibility}")
// TODO according dependency.visibility to move down or up the child view
return super.onDependentViewChanged(parent, child, dependency)
}
}
Что с ним не так?