【问题标题】:Android visibility not working for MotionLayoutAndroid 可见性不适用于 MotionLayout
【发布时间】:2022-09-27 14:33:28
【问题描述】:

我正在尝试使用此答案 https://stackoverflow.com/a/62658424/5412554 对 MotionLayout 下的视图进行可见性更改 但对我来说,它在观察下不起作用。例如:

viewModel.messageLinkedList.observe(viewLifecycleOwner) {
binding.motionLayout.getConstraintSet(R.id.start).getConstraint(binding.deleteAllText.id).propertySet.mVisibilityMode = 1; // 1 - ignore or 0 - normal
binding.deleteAllText.visibility = View.GONE
}

如果我只是在片段的 onCreateView 中使用它就可以了。

例如:

binding.motionLayout.getConstraintSet(R.id.start).getConstraint(binding.deleteAllText.id).propertySet.mVisibilityMode = 1; // 1 - ignore or 0 - normal
binding.deleteAllText.visibility = View.GONE

请帮助我正确的解决方案。

标签: android layout data-binding observer-pattern android-motionlayout


【解决方案1】:

我不知道它适用于数据绑定,但我找到了 Kotlin 的解决方案,也许你可以弄清楚:

motion_layout_id.getConstraintSet(R.id.start)?.let {
            it.setVisibility(R.id.deleteAllText, View.GONE)
            motion_layout_main.requestLayout() // this must be done to apply the visibility change
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2021-11-17
    • 2012-05-30
    • 2016-06-18
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    相关资源
    最近更新 更多