问题标签 [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 - recyclerview onswipe 项目的运动布局(alpha4)问题
我正在使用implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha4'
约束布局的 alpha4。首先,我创建了一个单一的布局并做 onswipe 动画,它与运动布局完美配合,然后我用 recyclerview 修补了布局。现在问题出现了
问题:
- 如果我在 rv 的特定项目中进行 onswipe,那么它就会变得滞后。
- 假设我现在在 rv 的第一项上滑动,在完全滑动后,你会发现同样的滑动已经发生,第 13 次没有项目,第 25 次没有项目等等。因此,在每 12 项相同的滑动后,您可以在滚动时检查。
我已经在Github上发布了整个项目,还创建了一个示例视频。
_在这里快速了解运动布局
这是布局描述
android - MotionLayout:MotionScene OnClick 覆盖 setOnClickListener
我刚开始玩MotionLayout
。我已经定义了一个活动布局MotionLayout
,使用它MotionScene
来隐藏和显示一个视图。
MotionScene
过渡如下所示:
麻烦的是,当我以编程方式将 ClickListener 添加到按钮时,什么也没有发生:
此侦听器被完全忽略,但每次单击都会触发转换(视图展开/折叠)。我已经看到有人在哪里扩展 MotionLayout
来处理点击事件,但似乎有一种更简单的方法可以为按钮添加另一个点击侦听器。
问题 1:有没有办法在 MotionLayout 过渡中将 ClickListener 添加到 OnClick 的目标?
问题 2:有没有办法让转换成为一次性事件? 期望的结果是,如果在单击按钮时视图是折叠的,则视图会展开,但如果它已经展开,则它会保持展开状态。
最后,我使用了命名空间"http://schemas.android.com/apk/res-auto"
,文档清楚地说明了这一点,target
并且mode
是 OnClick 的属性。但是当我使用该项目时将无法编译,mode
因为在该命名空间中找不到它。
问题 3:我是否使用了正确的命名空间?
android - 未调用 Android MotionLayout 过渡侦听器
我正在尝试制作幻灯片动画。为此,我使用 MotionLayout 和包含两个 ConstraintSet 的 MotionScene。
幻灯片动画效果很好。但是我在 LogCat 中得到一个错误:
E/MotionLayout: 警告没有 app:layoutDescription 标签
view_slider.xml
场景滑块.xml:
SliderView.kt:
片段.xml
我可能会遗漏一些东西,因为代码中有 MotionLayout 的 layoutDescription。
如何修复此错误以及为什么现在调用 TransitionListener 回调?
android - 约束集中的重复 ID
我正在尝试通过motionLayout实现一个简单的动画,目的是单击以移动图像,但是约束集不允许重复的ID
结束约束存在错误,重复约束 id(跟踪器)
android - AndroidX 中的 MotionLayout 不存在
Android Studio 在 xml 中找不到 MotionLayout。我使用androidx.constraintlayout.motion.widget.MotionLayout
标签并得到一个灰屏。我也在实施'com.android.support.constraint:constraint-layout:2.0.0-alpha4'
并更改为 alpha02 没有任何改变。我已经找到了一个具有相同问题的问题,但它也没有解决方案。
android - MotionLayout 没有动画
我正在尝试通过 MotionLayout 创建折叠视图动画。我想让视图在向下滚动时折叠,直到完全向上滚动时才会出现。我的动画现在不起作用(视频)。在第一次点击之前,我的回收站视图也是不可见的。我究竟做错了什么?感谢
MainActivity 布局:
运动场景:
android - MotionScene 中的 OnSwipe 过渡,应用于 ScrollView 不起作用
目前,我正在尝试理解 MotionLayout(在“测试应用程序”中)以将其应用于更大的应用程序。
我正在尝试的是模拟可折叠工具栏。
我用几张图片和 ScrollView 做了一个布局:
布局
然后我创建了 MotionScene 布局来处理过渡:
运动场景 xml
这就是我遇到问题的地方。动画效果很好,但前提是我在 ImageView 中做手势。如果在 ScrollView 中做手势,则忽略过渡。
如您所见,OnSwipe
应用于touchAnchorID
滚动视图。
也许无法应用于 ScrollView?在这种情况下,可以应用哪种解决方案?
因为在“真实项目”中的视图,已经用ScrollView 完成了。
android - Android MotionLayout setGuidelinePercent 不适用于 alpha4 版本
我的应用中有一个用于滑动过渡的 MotionLayout。目前我刚刚更新2.0.0-alpha3
到2.0.0-alpha4
发布,有些事情不像以前那样工作。有“myView”,这是一个应该从屏幕底部扩展到标题视图的布局。它对我需要以编程方式控制的指南有一个限制(基于一些用户操作)。
代码中没有其他更改,因此降级到 alpha3 使一切按预期工作。
代码非常基本:
问题是在 alpha3 版本中,我可以使用这样的东西(并且它有效):
现在我升级到2.0.0-alpha4
,这不再起作用,我不明白为什么。它总是从 xml 中获取默认值,并且在我尝试动态执行时永远不会更改。
我要做的是根据一些动态数据(在片段开头或用户返回时可用)更改过渡的起点。如果您对如何使用 MotionLayout 实现这一点有更好的了解,请给我一个提示。
摇篮实现:
android - MotionLayout OnSwipe 过渡由错误的锚点触发
所以我们试图模仿可窥视的行为BottomSheetLayout
(从屏幕底部窥视的底部视图,向上滚动时进入全屏视图,有点像这样:https://www. youtube.com/watch?v=yrZVLL-z6P4 ) 使用MotionLayout
, 版本2.0.0-alpha4
.
问题是可OnSwipe
窥视视图上的过渡不适用于视图本身,它显然适用于下面的整个视图,在这种情况下是 a RecyclerView
. 因此,当我们滚动 时RecyclerView
,过渡正在运行。
root_view.xml
motion_scene.xml
android - 在Android Motion Layout中更改内容后如何使“wrap_content”工作?
设置新值时,“wrap_content”在 MotionLayout 中无法正常工作。我在 RecyclerView 上方创建了一个带有 TextView 的示例。TextView 最初设置为android:layout_height="wrap_content"
和android:text='Hello World!
。然后TextView#setText()
将在从服务器获取内容后调用。所以我的问题是,在我设置了一些很长的文本后,TextView 的高度不会改变。
我正在使用implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha4
. 这是示例代码:
MainActivity.kt:
activity_main.xml
scene_activity_main.xml
更新:implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3
没有这个问题。