为了账号安全,请及时绑定邮箱和手机立即绑定

将带有动画的 layout_weight 从 0.3 扩展到 0.8

将带有动画的 layout_weight 从 0.3 扩展到 0.8

婷婷同学_ 2021-09-12 17:27:54
我有一个片段滑动到屏幕高度的 0.3...现在我想在按钮上将它从 0.3 动画到 0.8。但是怎么做呢?我可以为 layout_weight 设置动画吗?单击按钮后我需要显示更多信息,为什么要升高高度。objectAnimator 不起作用。<LinearLayout                android:id="@+id/container"                android:layout_width="match_parent"                android:layout_height="match_parent"                android:orientation="vertical"                android:weightSum="1"                android:gravity="bottom">                <LinearLayout                    android:id="@+id/details"                    android:layout_width="match_parent"                    android:layout_height="0dp"                    android:layout_weight="0.3"                    android:layout_marginLeft="20dp"                    android:layout_marginRight="20dp"                    android:animateLayoutChanges="true"                    android:background="@drawable/shape_details"                    android:clickable="true"                    android:orientation="vertical"                    android:padding="15dp"                    android:paddingBottom="32dp"                    android:paddingTop="32dp">                    <TextView                        android:id="@+id/name"                        android:layout_width="match_parent"                        android:layout_height="match_parent"                        android:layout_weight="1"                        android:text=""                        android:textSize="18sp"                        android:textStyle="bold" />                    <LinearLayout                        android:layout_width="match_parent"                        android:layout_height="match_parent"                        android:layout_weight="1"                        android:orientation="horizontal">                        <ImageView                            android:layout_width="0dp"                            android:layout_height="25dp"                            android:layout_weight=".1"                            android:src="@drawable/time" />
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您可以通过使用 aValueAnimator将 afloat从 0.3 设置为 0.8来实现此目的,然后使用 anAnimatorUpdateListener更新weight详细信息视图的LayoutParams.


LinearLayout details = findViewById(R.id.details);


ValueAnimator animator = ValueAnimator.ofFloat(0.3f, 0.8f);

animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

    @Override

    public void onAnimationUpdate(ValueAnimator animation) {

        float value = (float) animation.getAnimatedValue();


        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) details.getLayoutParams();

        params.weight = value;

        details.setLayoutParams(params);

    }

});

现在,您可以随时调用animator.start()从 30% 高度到 80% 高度的动画视图。


查看完整回答
反对 回复 2021-09-12
  • 1 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信