问题标签 [android-motionlayout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 编排 Android 运动布局动画
我有一个 xml 布局,我想在用户单击按钮时实现一些动画,所以我想使用带有 MotionScene 的新 MotionLayout。在布局中,我有一个必须向上滑动的背景 FrameLayout,以及一个在用户单击时必须出现的 ImageView(alpha 属性动画);问题是首先布局应该向上滑动,然后出现 ImageView,但是在 MotionScene 的转换中,我只能指定一个开始的 ConstraintSet 和一个结束的 ConstraintSet,但不能指定中间的;我想过使用 KeyAttributes,但它们不允许我设置背景布局的高度,如果我在(例如)动画的 50% 处将它们与 translationY 属性一起使用,那么它会保持原样吗?另外,如何从java代码开始一个MotionLayout动画呢?提前致谢。
android - 如何在 recyclerview 中使用运动布局
尝试使用MotionLayout
with RecyclerView
,
向上滚动时,应用程序因错误而崩溃:
android.content.res.Resources$NotFoundException:找不到资源 ID #0xffffffff
片段布局代码是
和 layoutDescription 代码是:
android - 运动布局阻止更新 recyclerview
我已经开始使用运动布局进行一些顶部栏滚动,并且看起来存在阻止回收器视图显示更新数据的问题。目前我正在使用2.0.0-alpha3
. ConstraintLayout
在视图中,我有工具栏和 2 个用作过滤器的选项卡,可以说filterX
,filterY
那些传递了一些 rx 的东西,这些东西基本上只是基于type
这个过滤项目列表并不重要,因为数据被正确过滤,线程是正确的,数据被传递到每次都使用适配器,但是当我将运动布局滚动到顶部或底部时,有时更改不会反映在回收器视图中,它们会在我滚动一点甚至触摸后重新加载,在标准情况下不会发生ConstraitLayout
. 有没有人经历过这个并且知道任何解决方案?
编辑:带有运动布局的布局:
和运动场景
android - 是否可以禁用 MotionLayout?
我有Fragment
一个RecyclerView
在MotionLayout
. 在回收站视图之上,我有一个可以折叠和展开的视图,所有这些都在我的运动场景中完成。它由单击触发以及响应拖动回收站视图。到目前为止,这一切都按预期工作。
现在问题来了:我想在我的应用程序中完全隐藏某些状态的折叠视图。但是,如果我设置视图可见性或更改其高度,当我拖动回收器视图时,它仍然会重新出现。
那么是否可以完全禁用 MotionLayout(锁定约束),直到我再次启用它。禁用阻力识别器也是一个可行的解决方案。
现在用一些简化的 XML 来演示这种情况。
包含带有标题视图和回收器视图的运动布局的布局
对应的运动场景:
使用约束布局版本“2.0.0-alpha3”
implementation "com.android.support.constraint:constraint-layout:2.0.0-alpha3"
所以回顾一下:我希望能够禁用运动布局,这样我就可以在不扩展标题的情况下滚动回收视图,直到我告诉它再次启用。不幸的是,它并不像favouritesMotionLayout.isEnabled = false
,但这是我的想法。
android - PreferenceFragmentCompat 影响其他片段的性能
我按照谷歌指南(https://developer.android.com/guide/topics/ui/settings)将 PreferenceFragmentCompat 添加到我的应用程序中。
此外,我还有另一个片段(片段 A),其中包含 MotionLayout 中的 RecyclerView。MotionLayout 用于小动画,通过 onSwipe 将 RecyclerView 扩展为垂直全屏。
现在我面临以下问题:在我调用 PreferenceFragment 然后返回到 Fragment A 之后,MotionLayout onSwipe 动画的性能真的很差/滞后。根据日志,在滑动时多次调用 onDraw 方法。
有趣的事实是,onDraw 方法只被调用一次(@onCreate),而我还没有启动 PreferenceFragment?!
此外,调用我的其他片段的任意片段 X 不会影响我的片段 A的性能?!
这可能是什么原因?我该如何继续我的调查?
android-constraintlayout - 如何在特定帧位置使用motionlayout旋转textview
我正在尝试将约束布局 2.0 用于布局和元素动画。我创建了具有运动的布局作为父级,其中包含另一个线性布局,其中 1 个线性用作抽屉,另一个用作主视图。我想旋转文本视图当 linear_pink 框架位置为 50 时为 20 度。
这是我的 MotionLayoutFile
这是我的motionlayout场景
android - 如何在 ConstraintLayout 中刷新约束视图的高度
我有一个 ConstraintLayout,其中我有一个 View(称为 Bar)和一个 RecyclerView 限制在 Bar 的底部,RecyclerView 的高度设置为匹配 Constraint(0dp),
因此,如果在 Android 布局编辑器中我向上移动 Bar 例如,RecyclerView 高度增加并且总是“锚定”到 Bar,它的工作,
但这在运行时的行为不一样,当我移动 Bar(使用 onTouchListener)时,RecyclerView 的高度根本不会改变,并且如果 Bar 位于同一位置,则保持不变。
为了实现这种行为(移动 Bar 增加/减少 RecyclerView 高度),我考虑并尝试了 ConstraintLayout 解决方案,
所以我设置了一个约束(顶部)到栏的底部,我已经设置了高度以匹配约束,
我还尝试使用 LayoutParam 来实现此行为,根据移动的像素更改高度,但公式不是 100% 好,并且使用这种方式从视图的底部和顶部更改高度(显然不是使用约束解决方案)
编辑 :
这是<include>
布局 1 中标签的内容:
android - 当我在 MotionLayout 中使用 RecyclerView 和 SwipeRefreshLayout 做一些动画时,事情变得很奇怪
当 RecyclerView 向上拖动时,我正在使用 MotionLayout 来实现一些很酷的效果,但是当我想将 SwipeRefreshLayout 与 RecyclerView 一起使用时,似乎发生了冲突。
如果没有 SwipeRefreshLayout 就好了
如果我用 SwipeRefreshLayout 包围,向上拖动的行为就像反对一样奇怪
https://gist.github.com/GHChrisSu/6aadf40dc693bc47cbb83a167a82a4b9
运动场景如下
https://gist.github.com/GHChrisSu/a154d59f34555cccfc1b48617989ae16
android - 无法更改 MotionLayout 中 TextInputLayout 的可见性
我是第一次尝试,但在MotionLayout
更改.TextInputLayouts
MotionScene
motion_scene.xml
activity_main.xml
我试过摆弄东西,但我无法指出它为什么会发生。
请不要将此标记为重复,因为这是我正在尝试的一个相当新的库。如果需要,我很乐意进一步详细说明。