问题标签 [constraintset]

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 回答
495 浏览

android - ConstraintLayout Slide Transition 动画在动画结束前显示视图的全高

我有以下活动和布局:

当我尝试显示/隐藏bottomBlue时,会发生以下情况:

轻弹

如你看到的,

  • 当我隐藏视图时,按钮直接向下而不动画(bottomBlueView 动画没问题;
  • 当我显示视图时,按钮也会直接向上而不动画。但最让我烦恼的是,在动画开始之前会显示一个白色区域并一直停留在那里直到结束。

有没有办法解决这些动画问题?我已经尝试了很多方法(使用ConstraintSetand Animation),但它们都没有按预期工作。

0 投票
0 回答
10 浏览

python - 创建二维数组,使得行和列的总和等于给定的总和,并且在行和列中不重复相同的值

我想填充一个矩阵,使其行和列的总和应该匹配给定的总和例如 rowsums=[21,22,23,24,25] colsum=[21,22,23,24,25

并且该值不应在同一行或同一列中重复

0 投票
1 回答
225 浏览

android - 将 ConstraintSet 与 ViewBinding 一起使用

当与 ViewBinding 结合使用时,我无法将编程按钮与 ConstraintSet 一起显示。它不会崩溃,按钮只是没有出现。我不知道为什么。打印语句显示 btn 位于 0,0 且高度和宽度为零。在 ViewBinding 之前,我能够使用 ConstraintSet 创建和定位按钮等,所以我能得到的任何帮助来解决这个问题都会很棒。

截屏

0 投票
1 回答
107 浏览

android - 有没有办法为 MaterialButton 的 iconTint 设置 MotionLayout 自定义属性?

根据这篇文章

CustomAttribute 用 attributeName 指定,它需要匹配对象的 getter/setter 方法,例如: getter: getName (eg getBackgroundColor) setter: setName (eg setBackgroundColor)

(所以motion:attributeName需要backgroundColor

我已经尝试使用材质按钮使用波纹管属性名称,但它们都不起作用。

<CustomAttribute motion:attributeName="IconTintResource" motion:customColorValue="@color/keyTextColor" />

'IconTintResource', 'iconTintResource', 'IconTint', 'iconTint', 'ColorFilter'

有什么建议么?

这些是我得到的错误

E/TransitionLayout: Custom Attribute "IconTint" not found on com.google.android.material.button.MaterialButton

E/TransitionLayout: com.google.android.material.button.MaterialButton must have a method setIconTint

E/TransitionLayout: no method setIconTinton View "f_editor_image_view_terminal"

0 投票
0 回答
16 浏览

android - ConstraintSet 不会改变任何东西

我正在创建一个通知菜单(用于练习)。我创建了一个通知片段:

NotificationFragment(刚刚添加了第二个构造函数,并覆盖了 onCreateView):

在我的活动中,我有一个 ConstraintLayout(notification_layout) 和一个添加 NotificationFragments 的函数:

主要活动:

这会显示第一个通知,但屏幕上没有任何变化

我认为通知相互重叠。

问题

0 投票
0 回答
41 浏览

android - 使用不同的数据为相同的视图设置动画,以与回收站视图相同的方式运行

我正在尝试使用从左到右的动画从列表中更改卡片上的数据,并且我的动画可以正常工作,但是卡片视图完全向左移动,然后从右侧加载新数据。

我希望卡片动画像 recyclerview 一样,其中一个视图在向左动画时肉眼可见。

动画代码在这里:

--- ---

因为,所有这些动画都发生在同一个约束布局上,所以视图完全向左(当动画左时),之后只有同一个视图带有绑定的新数据。

我希望它能够像添加回收器那样运行,以便在滚动时一个项目 50% 可见,下一个项目 50% 可见。

任何形式的帮助将不胜感激。

0 投票
0 回答
19 浏览

android - 在运行时使用 ConstraintSet() 以编程方式移动按钮不起作用

我想在运行时使用 ConstraintSet() 移动按钮。我知道这个问题之前在stackoverflow上被问过,但是尝试了整整两天在帖子中给出的所有代码我仍然无法通过以下方式使其工作:

1:什么都没有发生

2:我想移动的视图消失了,再也没有出现过

3:我收到错误消息:孩子已经有了父母,请先在父母上调用 removeView()

我确定我错过了一些东西,所以请帮忙!

为了演示这个问题,我简化了应用程序。一些解释:我想要一个显示一些数据集的活动(暂时不感兴趣)。要添加数据集,FAB 会启动对话片段。以下是 xml 布局main

和全屏对话框的主题:

这是代码activity_main

对话框片段旨在获取新数据集的所有用户输入。在最终的应用程序中,我将为数据集设置几个类别,其中对话框会略有不同。因此我决定使用 ViewStub。布局dialog_frame将包含不会通过各个对话框更改的所有部分。

ViewStubdialog_content本身对于各个对话框会有所不同,并包含我想在运行时移动的视图。

该对话框将有一些基本信息的输入字段,由上面的 TextView (id = textview) 展示,但也有一些为专业人士提供的额外输入,由最初隐藏的第二个 TextView (id = textview2) 展示。这些额外的输入应该通过按下“更多字段”按钮来显示。由于会有很多“专业”输入,因此 ViewStub 的布局包含一个滚动视图。cardView 只是为了变得更好......但是,随着布局的扩展和其他输入的显示,我希望“保存”按钮向下移动到最后一个输入下方,并且“更多字段”按钮消失。

对话框AddDialogFragment()本身的代码是:

在函数的代码中,private fun setupNewConstrains(viewToMove: View, viewToConstrainTo:View)我尝试了创建布局的方法:首先只是简单地继承ConstraintLayout(context)和其次,通过val layout: ConstraintLayout引用 xml 文件中的约束布局标记进行初始化,该文件承载我要移动的按钮。稍后我ConstraintSet()通过引用完整的布局文件来克隆布局dialog_content.xml。也许问题与这些线路有关?

如果有人可以对我上面的问题发表评论或让我进入正确的方向以使应用程序运行,我将非常感激。

0 投票
1 回答
83 浏览

android - 使用 MotionLayout 将 TextView 设置为小写

textView使用 MotionLayout 将大写动画设置为小写

像 FACTS -> 事实

我成功翻译并更改textColor了位置,因为我无法在动画期间将所有字母转换为小写

运动场景

我试过使用inputType,但它不工作,而captialize被弃用..

我也试过

但不工作..

有人可以为我提供更好的解决方案吗

0 投票
1 回答
64 浏览

android - 在android中以编程方式将EditText视图约束到复选框?

我在这里尝试的是,当单击addNewToDo 按钮时,应该将defaultEditText视图从 editText 视图转换为具有与 defaultEditText 相同的约束的复选框视图,并且我使用 Constraint.LayoutParams 这样做非常成功。

但我还想要的是,在单击按钮的同时,应该使用与前一个相同的属性(editText)创建一个 newEditText并放置在以编程方式创建的复选框的底部以及addNewToDo 按钮应该低于 newEditText

下面的代码成功,

创建具有预期属性的复选框。
创建一个具有正确宽度和高度的新 editText 视图。
约束新创建的editText下方的按钮。

失败,

约束已创建的复选框下方的 newEditText 视图

我得到的输出是,

newEditText 被放置在 UI 的左上角,我了解到如果没有正确约束,视图会被放置在那里

在此处输入图像描述

如何将 newEditText 约束到复选框?

仅供参考,我是在 ScrollView 中使用 ContraintLayout

0 投票
1 回答
119 浏览

android - 当我更改元素的 id 时,通过 ConstraintSet 以编程方式添加障碍不起作用?

我一直在尝试使用 ConstraintSet 以编程方式向 Android Studio 中的约束布局添加障碍,但我无法让我的代码正常工作,最终结果应该只是一个 textView,然后是右侧的障碍,以及另一个 textview从屏障的右侧开始。我正在使用 ConstraintSet.createBarrier 方法添加障碍,这就是应用程序中的结果应该是这样的:

"TextView1""TextView2"

也就是说,textView2 从 textView1 的末尾开始,但 textView1 很长。这是activity_main.xml:

这是我在 MainActivity.java 中的代码:

这是我运行它时的结果:

结果改变id

请注意,当我禁用该行并且不更改 textView1 的 id 并再次运行代码时,我如何textView1.setId(1)将 textView1 的 id 更改为 1(我也尝试使用更改 id并获得相同的结果)textView1.setId(View.generateViewId())我得到了我想要的结果:

结果不改变id

我究竟做错了什么?为什么我不更改ID时它会起作用?我希望能够在我的代码中更改 id。