Как создать границы для пользовательского средства выбора номера? - PullRequest
0 голосов
/ 04 июня 2019

Я пытался создать горизонтальное средство выбора номера, но высота EditText становится больше.

Я удалил нижнюю границу EditText с помощью <item name="android:background">@null</item> в styles.xml

layout/test.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="8dp">
    <LinearLayout
        android:id="@+id/num_picker_layout"
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:orientation="horizontal"
        app:layout_constraintHorizontal_chainStyle="spread"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toStartOf="@id/btn_product_to_basket"
        app:layout_constraintTop_toTopOf="parent">

        <Button
            android:id="@+id/btn_less"
            style="@style/numberPickerBtn"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:text="-" />

        <EditText
            android:id="@+id/et_number"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:inputType="number"
            style="@style/numberPickerEt"
            android:text="1"
            android:textAlignment="center" />

        <Button
            android:id="@+id/btn_more"
            style="@style/numberPickerBtn"
            android:layout_width="50dp"
            android:layout_height="match_parent"
            android:text="+" />
    </LinearLayout>

    <Button
        android:id="@+id/btn_product_to_basket"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Добавить в корзину"
        android:textAllCaps="false"
        android:textSize="14sp"
        app:icon="@drawable/ic_btn_basket"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_chainStyle="spread"
        app:layout_constraintStart_toEndOf="@id/num_picker_layout"
        app:layout_constraintTop_toTopOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>

вытяжка / number_picker.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <stroke android:width="1dp" android:color="#CCCCCC"/>
</shape>

styles.xml

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="numberPickerBtn">
        <item name="backgroundTint">#E5E5E5</item>
        <item name="android:textColor">#757575</item>
        <item name="android:background">@drawable/number_picker</item>
    </style>
    <style name="numberPickerEt" parent="Widget.AppCompat.EditText">
        <item name="android:background">@drawable/number_picker</item>
    </style>
</resources>

мой желаемый результат: https://habrastorage.org/webt/5c/f4/b3/5cf4b3cc1a4e5823043866.jpeg

текущее состояние: https://habrastorage.org/webt/5c/f4/f1/5cf4f1d8911ce534938275.png

вот я заполняю красным цветом, чтобы кнопки соответствовали родительским, но они не https://habrastorage.org/webt/5c/f4/f7/5cf4f799b9116853603442.png

Что я делаю не так?

1 Ответ

0 голосов
/ 08 июня 2019

Я нашел решение <item name="android:layout_marginTop">5dp</item> <item name="android:layout_marginBottom">5dp</item>

...