- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在单击时为 BottomSheetFragment 上的布局更改设置动画。我实现了 ConstraintSet.applyTo 和 TransitionManager.beginDelayedTransition 以将初始场景更改为最终场景。但是当发生过渡时,动画似乎在重复。底部的示例输出。
BottomSheetFragment.java
ConstraintSet constraintSet;
boolean isSelected = false;
@BindView(R.id.container_root) ConstraintLayout layoutRoot;
@BindView(R.id.ic_leave_date) ImageView ivLeaveDate;
@BindView(R.id.ic_date_filed) ImageView ivDateFiled;
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
LayoutTransition transition = new LayoutTransition();
transition.setAnimateParentHierarchy(false);
layoutRoot.setLayoutTransition(transition);
}
@OnClick(R.id.layout1)
public void openLeaveDate(){
TransitionDrawable bgTransition = (TransitionDrawable) layoutLeaveDate.getBackground();
TransitionDrawable ivTransition = (TransitionDrawable) ivLeaveDate.getBackground();
if(isSelected){
isSelected = false;
bgTransition.reverseTransition(300);
ivTransition.resetTransition();
constraintSet = new ConstraintSet();
constraintSet.clone(getActivity(), R.layout.bottom_sheet_filter_leave);
TransitionManager.beginDelayedTransition(layoutRoot);
constraintSet.applyTo(layoutRoot);
}else{
isSelected = true;
bgTransition.startTransition(300);
ivTransition.startTransition(300);
constraintSet = new ConstraintSet();
constraintSet.clone(getActivity(), R.layout.layout_bottom_date_filed);
TransitionManager.beginDelayedTransition(layoutRoot);
constraintSet.applyTo(layoutRoot);
}
}
bottom_sheet_filter_leave.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_leave_date"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="@transition/bg_transition"
android:clickable="true"
android:focusable="true"
android:paddingStart="24dp">
<ImageView
android:id="@+id/ic_leave_date"
android:layout_width="24dp"
android:layout_height="match_parent"
android:src="@transition/ic_leave_date_transition"/>
<TextView
android:id="@+id/label_leave_date"
style="@style/TextAppearance.Content.Bold.Black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/leave_date"
app:layout_constraintBottom_toTopOf="@+id/guide_leave_date"
app:layout_constraintStart_toEndOf="@+id/ic_leave_date"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="All"
app:layout_constraintStart_toEndOf="@+id/ic_leave_date"
app:layout_constraintTop_toBottomOf="@+id/guide_leave_date"/>
<android.support.constraint.Guideline
android:id="@+id/guide_leave_date"
android:layout_width="match_parent"
android:layout_height="1dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="@transition/bg_transition"
android:paddingEnd="24dp"
android:paddingStart="24dp"
android:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/layout_leave_date">
<ImageView
android:id="@+id/ic_date_filed"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@transition/ic_date_filed_transition"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:id="@+id/label_date_filed"
style="@style/TextAppearance.Content.Bold.Black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/date_filled"
app:layout_constraintBottom_toTopOf="@+id/guide_date_filed"
app:layout_constraintStart_toEndOf="@+id/ic_date_filed"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="All"
app:layout_constraintStart_toEndOf="@+id/ic_date_filed"
app:layout_constraintTop_toBottomOf="@+id/guide_date_filed"/>
<android.support.constraint.Guideline
android:id="@+id/guide_date_filed"
android:layout_width="match_parent"
android:layout_height="1dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_all_date_filed"
android:layout_width="match_parent"
android:layout_height="54dp"
android:clickable="true"
android:focusable="true"
android:paddingEnd="0dp"
android:paddingStart="12dp"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/layout1">
<RadioButton
android:id="@+id/rb_all_date_filed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/all"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/rb_all_date_filed"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_input_date_filed"
android:layout_width="match_parent"
android:layout_height="54dp"
android:clickable="true"
android:focusable="true"
android:paddingEnd="0dp"
android:paddingStart="12dp"
android:visibility="gone"
app:layout_constraintTop_toBottomOf="@+id/layout_all_date_filed">
<RadioButton
android:id="@+id/rb_input_date_filed"
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<EditText
android:id="@+id/txt_date_filed_start"
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="12dp"
android:drawableEnd="@drawable/ic_calendar_orange"
android:hint="@string/mm_dd_yy"
android:singleLine="true"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/rb_input_date_filed"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_divider_date_filed"
android:layout_width="10dp"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/txt_date_filed_start"
app:layout_constraintTop_toTopOf="parent"/>
<EditText
android:id="@+id/txt_date_filed_end"
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="15dp"
android:hint="@string/mm_dd_yy"
android:singleLine="true"
android:drawableEnd="@drawable/ic_calendar_orange"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view_divider_date_filed"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
layout_bottom_date_filed.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_leave_date"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="@transition/bg_transition"
android:clickable="true"
android:focusable="true"
android:visibility="gone"
android:paddingStart="24dp">
<ImageView
android:id="@+id/ic_leave_date"
android:layout_width="24dp"
android:layout_height="match_parent"
android:src="@transition/ic_leave_date_transition"/>
<TextView
android:id="@+id/label_leave_date"
style="@style/TextAppearance.Content.Bold.Black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/leave_date"
app:layout_constraintBottom_toTopOf="@+id/guide_leave_date"
app:layout_constraintStart_toEndOf="@+id/ic_leave_date"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="All"
app:layout_constraintStart_toEndOf="@+id/ic_leave_date"
app:layout_constraintTop_toBottomOf="@+id/guide_leave_date"/>
<android.support.constraint.Guideline
android:id="@+id/guide_leave_date"
android:layout_width="match_parent"
android:layout_height="1dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="54dp"
android:background="@transition/bg_transition"
android:paddingEnd="24dp"
android:paddingStart="24dp"
android:visibility="visible"
app:layout_constraintTop_toBottomOf="@+id/layout_leave_date">
<ImageView
android:id="@+id/ic_date_filed"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="@transition/ic_date_filed_transition"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:id="@+id/label_date_filed"
style="@style/TextAppearance.Content.Bold.Black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="@string/date_filled"
app:layout_constraintBottom_toTopOf="@+id/guide_date_filed"
app:layout_constraintStart_toEndOf="@+id/ic_date_filed"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:text="All"
app:layout_constraintStart_toEndOf="@+id/ic_date_filed"
app:layout_constraintTop_toBottomOf="@+id/guide_date_filed"/>
<android.support.constraint.Guideline
android:id="@+id/guide_date_filed"
android:layout_width="match_parent"
android:layout_height="1dp"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_all_date_filed"
android:layout_width="match_parent"
android:layout_height="54dp"
android:clickable="true"
android:focusable="true"
android:paddingEnd="0dp"
android:paddingStart="12dp"
app:layout_constraintTop_toBottomOf="@+id/layout1">
<RadioButton
android:id="@+id/rb_all_date_filed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="@string/all"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@id/rb_all_date_filed"
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout
android:id="@+id/layout_input_date_filed"
android:layout_width="match_parent"
android:layout_height="54dp"
android:clickable="true"
android:focusable="true"
android:paddingEnd="0dp"
android:paddingStart="12dp"
app:layout_constraintTop_toBottomOf="@+id/layout_all_date_filed">
<RadioButton
android:id="@+id/rb_input_date_filed"
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<EditText
android:id="@+id/txt_date_filed_start"
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="12dp"
android:drawableEnd="@drawable/ic_calendar_orange"
android:hint="@string/mm_dd_yy"
android:singleLine="true"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/rb_input_date_filed"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/view_divider_date_filed"
android:layout_width="10dp"
android:layout_height="1dp"
android:layout_marginStart="15dp"
android:background="@color/gray"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/txt_date_filed_start"
app:layout_constraintTop_toTopOf="parent"/>
<EditText
android:id="@+id/txt_date_filed_end"
style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox.Dense"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginStart="15dp"
android:hint="@string/mm_dd_yy"
android:singleLine="true"
android:drawableEnd="@drawable/ic_calendar_orange"
android:textSize="13sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/view_divider_date_filed"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
这是它的样子:
更新:
我尝试将此设置应用于其他 fragment (不是 BottomSheetFragment),动画似乎工作正常。也许它与 BottomSheetFragment 有关?
最佳答案
我通过删除 OnViewCreated() 上的这些行解决了这个问题:
LayoutTransition transition = new LayoutTransition();
transition.setAnimateParentHierarchy(false);
layoutRoot.setLayoutTransition(transition);
关于android - 在 BottomSheetFragment 上重复 ConstraintSet 的过渡动画问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53476531/
我的 XML 中有一个名为 rootLayout 的 ConstraintLayout。 我想让 radiogroup 居中,textview 放在它的顶部 这是我的代码:
我试图更改在我的项目中添加的按钮的布局属性,但是在运行我的项目后,当用户注册时,确认密码变为不可见,但同时按钮也是不可见的。请帮助我摆脱这个问题。 private void signInUse
我有带嵌套 ConstraintLayout 的布局,以及其他带约束的布局,以便将它们应用于第一个布局。我正在尝试通过应用不同的 ConstraintSet 来使用组约束来隐藏/显示一些 View 。
这让我发疯!当我尝试使用约束布局和约束集以编程方式构建布局时,测量布局始终为 0。 我在所有子项和父项上尝试了 requestLayout、forceLayout、invalidate。但宽度和高度为
我想将 MotionLayout 用于没有任何代码的动画,只需 XML。 当我制作 ConstraintSets 时,如果我使用所有约束属性(如 layout_width 、 layout_const
根据docs for ConstraintSet , clone() 方法有三种实现方式: void clone(ConstraintLayout constraintLayout) void clo
我在一个项目中工作,我想使用约束!如果我使用它,当我想在 pohne 中构建 gradle 或安装 apk 时,我会遇到此错误: “错误:在约束集中,无法找到属性 android:elevation”
我的 ConstraintSet 属性有问题,我已经完成了约束布局,我希望它通过代码更改一些约束,但是当我创建新的 ConstraintLayout 并将上下文设置为“this”,然后 setCont
看起来 ConstraintSet 很难应对 Start/End 约束。 此示例取自 Google 样本。Github: android-ConstraintLayoutExamples 当您用 St
我想在单击时为 BottomSheetFragment 上的布局更改设置动画。我实现了 ConstraintSet.applyTo 和 TransitionManager.beginDelayedTr
我有这个 ConstraintLayout: 并且,我想以编程方式在其中添加 ImageViews,尝试获取这张图片作为结果: 其中白色矩形是 ConstraintLayout,球和黄牌是以编程方式
我有一个用例,我想使用 MotionLayout 创建类似 Youtube 的动画。 this 中有此动画的示例 repo 。但问题是,在这个例子中,他们使用静态高度作为起始约束,如下所示,即 320
我正在尝试扩展 ConstraintLayout 功能,使 ProgressBar 具有全屏半透明背景色。我的想法是我可以重复使用此布局并调用 hideLoading() 和 showLoading(
val margin = 8 ConstraintSet().apply { connect(anId, ConstraintSet.START, anotherId, ConstraintSet
我正在尝试为登录屏幕实现一个动画,其中用户名和密码的两个 EditText 在屏幕外动画化,并以不同的持续时间返回到原始位置。如下this link !。我可以部分地制作动画。但我无法复制延迟动画类型
我刚开始学习 ConstraintLayout,它很酷,我来到主题 ConstraintSet 并卡住了。 我在开发人员文档中看到了 ConstraintSet 的示例,但我无法理解这个想法,我已经按
我的布局是 ConstraintLayout 层次结构是这样的: 顶部 View 区域占据了屏幕的一半,下方是 TabLayout 和 ViewPager。在此 ViewPager 中,有 3 个选项
我有一个自定义的 ConstraintLayout,里面有一个 TextView。我正在以编程方式WITHOUT XML来做所有事情,代码如下: public class CustomView ext
我在使用 ConstraintLayout 设置水平链约束时遇到错误: E/AndroidRuntime: FATAL EXCEPTION: main Process: me.optimize
我发现有一种使用 ConstraintSet 为 ConstrainLayout Activity 创建动画的快速方法。比对 RelativeLayout 使用 TransitionManager 更
我是一名优秀的程序员,十分优秀!