You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MotionLayout场景中设置LinearProgressIndicator的高度?

问题:MotionLayout中无法动态将LinearProgressIndicator高度变为0

我在MotionLayout里使用了LinearProgressIndicator,希望把它的高度从默认值调整为0。直接设置layout_height完全没有效果,查资料得知trackThickness是正确的调整属性,但在MotionScene中设置该值也无法改变进度条的高度。

我尝试的初始代码

<?xml version="1.0" encoding="utf-8"?>
<MotionScene
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:motion="http://schemas.android.com/apk/res-auto">

  <ConstraintSet android:id="@+id/start">
    <Constraint android:id="@id/now_playing_progress">
      <CustomAttribute
        motion:attributeName="trackThickness"
        motion:customDimension="?attr/trackThickness"
      />
    </Constraint>
  </ConstraintSet>

  <ConstraintSet android:id="@+id/end">
    <Constraint android:id="@id/now_playing_progress">
      <CustomAttribute
        motion:attributeName="trackThickness"
        motion:customDimension="0dp"
      />
    </Constraint>
  </ConstraintSet>

  <Transition
    motion:constraintSetEnd="@id/end"
    motion:constraintSetStart="@+id/start"
  >
    
  </Transition>
</MotionScene>

编辑:尝试其他方案仍无效

我试了另一种解决方案的代码,依旧没有效果:

布局文件

<?xml version="1.0" encoding="utf-8"?>
<layout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <merge>
    <!-- 用于设置约束和交互的占位View -->
    <View
      android:id="@+id/constraint_layout_placeholder"
      android:layout_width="match_parent"
      android:layout_height="?attr/actionBarSize"
      app:layout_constraintTop_toTopOf="parent"
    />

    <com.google.android.material.progressindicator.LinearProgressIndicator
      android:id="@+id/now_playing_progress"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      app:layout_constraintTop_toTopOf="@id/constraint_layout_placeholder"
      android:progress="@{progress, default=40}"
      android:progressTint="@color/colorPrimaryDark"
    />

    <!-- 省略其他代码 -->
  </merge>
</layout>

MotionScene文件

<?xml version="1.0" encoding="utf-8"?>
<MotionScene
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:motion="http://schemas.android.com/apk/res-auto">

  <ConstraintSet android:id="@+id/start">
    <Constraint android:id="@id/constraint_layout_placeholder">
      <PropertySet android:visibility="visible" />
    </Constraint>
  </ConstraintSet>

  <ConstraintSet android:id="@+id/end">
    <Constraint
      android:id="@id/now_playing_progress"
      android:layout_height="0dp"
      motion:layout_constraintBottom_toBottomOf="parent"
      motion:layout_constraintHeight_percent="0"
      motion:layout_constraintTop_toTopOf="parent" />
    <Constraint android:id="@id/constraint_layout_placeholder">
      <PropertySet android:visibility="invisible" />
    </Constraint>
  </ConstraintSet>

  <Transition
    motion:constraintSetEnd="@id/end"
    motion:constraintSetStart="@+id/start"
    >
  </Transition>
</MotionScene>

内容的提问来源于stack exchange,提问作者Augier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 20:57:09