Индикаторы прогресса на кнопке в Android - PullRequest
0 голосов
/ 04 мая 2020

Я использую Кнопка дизайна материала в Android проекте. Я хочу, чтобы кнопка Progress Indicator была включена при ее нажатии. Кажется, что у Material Design пока нет поддержки.

У кого-нибудь есть предложения, как мне добиться того же в кнопке Material Design.

Спасибо

1 Ответ

0 голосов
/ 04 мая 2020

Я не думаю, что какой-либо компонент материала доступен в соответствии с вашими потребностями, но создать собственный макет для него очень просто, вы можете использовать компоновку ограничений и соответственно разместить виды. Например, вы можете задать ограничения для индикатора выполнения, чтобы он находился посередине вашей кнопки. Попробуйте следующее и убедитесь, что оно соответствует вашим целям.

 <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>

А теперь обработайте видимость индикатора выполнения, поддерживая некоторые логики c, такие как использование флагов для поддержания его состояния.

Если вам нужно узнать о структуре ограничений, вы можете проверить это здесь: https://developer.android.com/reference/android/support/constraint/ConstraintLayout

Надеюсь, это поможет.

...