问题标签 [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.

0 投票
1 回答
1738 浏览

android - recyclerview onswipe 项目的运动布局(alpha4)问题

我正在使用implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha4'约束布局的 alpha4。首先,我创建了一个单一的布局并做 onswipe 动画,它与运动布局完美配合,然后我用 recyclerview 修补了布局。现在问题出现了 问题:

  1. 如果我在 rv 的特定项目中进行 onswipe,那么它就会变得滞后。
  2. 假设我现在在 rv 的第一项上滑动,在完全滑动后,你会发现同样的滑动已经发生,第 13 次没有项目,第 25 次没有项目等等。因此,在每 12 项相同的滑动后,您可以在滚动时检查。

我已经在Github上发布了整个项目,还创建了一个示例视频

_在这里快速了解运动布局

这是布局描述

0 投票
8 回答
10793 浏览

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:我是否使用了正确的命名空间?

0 投票
2 回答
6730 浏览

android - 未调用 Android MotionLayout 过渡侦听器

我正在尝试制作幻灯片动画。为此,我使用 MotionLayout 和包含两个 ConstraintSet 的 MotionScene。

幻灯片动画效果很好。但是我在 LogCat 中得到一个错误:

E/MotionLayout: 警告没有 app:layoutDescription 标签

view_slider.xml

场景滑块.xml:

SliderView.kt:

片段.xml

我可能会遗漏一些东西,因为代码中有 MotionLayout 的 layoutDescription。

如何修复此错误以及为什么现在调用 TransitionListener 回调?

0 投票
2 回答
250 浏览

android - 约束集中的重复 ID

我正在尝试通过motionLayout实现一个简单的动画,目的是单击以移动图像,但是约束集不允许重复的ID

结束约束存在错误,重复约束 id(跟踪器)

0 投票
2 回答
2005 浏览

android - AndroidX 中的 MotionLayout 不存在

Android Studio 在 xml 中找不到 MotionLayout。我使用androidx.constraintlayout.motion.widget.MotionLayout标签并得到一个灰屏。我也在实施'com.android.support.constraint:constraint-layout:2.0.0-alpha4'并更改为 alpha02 没有任何改变。我已经找到了一个具有相同问题的问题,但它也没有解决方案。

0 投票
1 回答
3345 浏览

android - MotionLayout 没有动画

我正在尝试通过 MotionLayout 创建折叠视图动画。我想让视图在向下滚动时折叠,直到完全向上滚动时才会出现。我的动画现在不起作用(视频)。在第一次点击之前,我的回收站视图也是不可见的。我究竟做错了什么?感谢

MainActivity 布局:

运动场景:

0 投票
0 回答
980 浏览

android - MotionScene 中的 OnSwipe 过渡,应用于 ScrollView 不起作用

目前,我正在尝试理解 MotionLayout(在“测试应用程序”中)以将其应用于更大的应用程序。

我正在尝试的是模拟可折叠工具栏。

我用几张图片和 ScrollView 做了一个布局:

布局

然后我创建了 MotionScene 布局来处理过渡:

运动场景 xml

这就是我遇到问题的地方。动画效果很好,但前提是我在 ImageView 中做手势。如果在 ScrollView 中做手势,则忽略过渡。

如您所见,OnSwipe应用于touchAnchorID滚动视图。

也许无法应用于 ScrollView?在这种情况下,可以应用哪种解决方案?

因为在“真实项目”中的视图,已经用ScrollView 完成了。

0 投票
1 回答
1310 浏览

android - Android MotionLayout setGuidelinePercent 不适用于 alpha4 版本

我的应用中有一个用于滑动过渡的 MotionLayout。目前我刚刚更新2.0.0-alpha32.0.0-alpha4发布,有些事情不像以前那样工作。有“myView”,这是一个应该从屏幕底部扩展到标题视图的布局。它对我需要以编程方式控制的指南有一个限制(基于一些用户操作)。

代码中没有其他更改,因此降级到 alpha3 使一切按预期工作。

代码非常基本:

问题是在 alpha3 版本中,我可以使用这样的东西(并且它有效):

现在我升级到2.0.0-alpha4,这不再起作用,我不明白为什么。它总是从 xml 中获取默认值,并且在我尝试动态执行时永远不会更改。

我要做的是根据一些动态数据(在片段开头或用户返回时可用)更改过渡的起点。如果您对如何使用 MotionLayout 实现这一点有更好的了解,请给我一个提示。

摇篮实现:

0 投票
2 回答
2266 浏览

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

0 投票
1 回答
1397 浏览

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

预期: https ://ibb.co/zR7Pq8V

实际: https ://ibb.co/QdLkJQX

更新implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3没有这个问题。