Как сделать полный округленный текст редактирования, используя компонент материала формы? - PullRequest
1 голос
/ 12 апреля 2020

Мне нужно сделать полный округленный текст редактирования, как на картинке ниже. Я использую Material Component. В материальном компоненте у нас есть форма, которую можно изменить, верно? поэтому я пытаюсь использовать стиль для изменения формы, я предполагаю, что могу изменить форму edittext, используя стиль

enter image description here

, используя такой стиль?

<style name="roundedEditText" parent="ShapeAppearance.MaterialComponents.SmallComponent">
        <item name="cornerFamily">rounded</item>
        <item name="cornerSize">32dp</item>
    </style>

и затем примените этот стиль к моему тексту редактирования, как это

 <EditText
            android:id="@+id/editText_search_toolbar"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="4dp"
            android:background="@color/grey_light_top"
            android:ems="10"
            android:hint="Ketik nama ustadz, lokasi, atau acara"
            android:imeOptions="actionSearch"
            android:inputType="textPersonName"
            android:maxLines="1"
            android:paddingStart="16dp"
            android:textSize="12sp"
            style="@style/roundedEditText"
            app:layout_constraintBottom_toBottomOf="@+id/base_searchView_toolbar_keyword_search_result"
            app:layout_constraintEnd_toEndOf="@+id/base_searchView_toolbar_keyword_search_result"
            app:layout_constraintStart_toEndOf="@+id/imageView_back_icon"
            app:layout_constraintTop_toTopOf="@+id/base_searchView_toolbar_keyword_search_result" />

, но он не влияет на мой текст редактирования, это все еще прямоугольник, подобный этому enter image description here

Если не использовать форму, могу ли я установить ее другим способом в Компонент материала?

1 Ответ

0 голосов
/ 12 апреля 2020

Если вы хотите использовать TextInputLayout, просто используйте атрибут app:shapeAppearanceOverlay:

   <com.google.android.material.textfield.TextInputLayout
        app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.TextInputLayout.Rounded"
        ....

        app:hintEnabled="false"
        app:endIconDrawable="@drawable/..."
        app:endIconMode="custom"
        android:clipToPadding="true"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        ...>

с:

<style name="ShapeAppearanceOverlay.MyApp.TextInputLayout.Rounded" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">50%</item>
  </style>

enter image description here

Если вы хотите использовать простой ExitText, вы можете использовать MaterialShapeDrawable до рисовать пользовательские фигуры .
Проверьте этот ответ .

...