我正在Android项目中使用Material Design Button。我想在按下按钮时创建一个Progress Indicator按钮。似乎“材料设计”还没有支持。
有人建议我如何在Material Design Button中实现相同的效果。
谢谢
我不认为可以根据您的需要提供任何材料组件,但是为该组件自定义布局非常容易,您可以使用约束布局并相应地放置视图。例如,您可以对进度条设置约束,使其位于按钮的中间。请尝试以下操作,并检查是否符合您的目的。
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.button.MaterialButton
android:id="@+id/button_accept"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dimen_24"
android:layout_marginEnd="@dimen/dimen_24"
android:backgroundTint="@color/colorGreen2"
android:elevation="8dp"
android:padding="@dimen/dimen_4"
android:src="@drawable/ic_check_white"
android:text="Accept"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:id="@+id/progress_bar_accept"
android:layout_width="@dimen/dimen_32"
android:layout_height="@dimen/dimen_32"
android:elevation="8dp"
android:indeterminate="true"
android:indeterminateTint="@color/colorWhite"
android:indeterminateTintMode="src_in"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/button_accept"
app:layout_constraintEnd_toEndOf="@+id/button_accept"
app:layout_constraintStart_toStartOf="@+id/button_accept"
app:layout_constraintTop_toTopOf="@+id/button_accept"/>
</androidx.constraintlayout.widget.ConstraintLayout>
现在通过维护一些逻辑(例如使用标志来保持进度条的状态)来处理进度条的可见性。
如果您需要了解约束布局,可以在此处进行检查:https://developer.android.com/reference/android/support/constraint/ConstraintLayout
希望这会有所帮助。