如何使用尺寸非常小的按钮(24dp)Android

时间:2019-04-01 12:21:02

标签: android material-design android-button

我正在设计一个食物订购页面,所以我需要使用小按钮在购物车上添加食物。问题是当我给宽度和高度设置24dp时,按钮的尺寸减小了,但我无法添加文本(“ +” “-”)。

我尝试过

  

android:minWidth =“ 0dp”
  android:minHeight =“ 0dp”
  style =“?android:attr / negativeButtonText”

<android.support.design.button.MaterialButton
                android:id="@+id/incrementButtton"
                style="?android:attr/buttonStyleSmall"
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:layout_gravity="center_vertical"
                android:gravity="center"
                android:minWidth="0dp"
                android:minHeight="0dp"
                android:text="+"
                android:textColor="@color/ash"
                android:textSize="@dimen/fm_food_price_text_size" />

我想知道如何设置按钮24dp并显示“ +”文本。如下图所示。 在此图像中,我使用了textView,因此文本可见。我想要通过使用按钮来实现。

enter image description here

3 个答案:

答案 0 :(得分:1)

尝试这种方式。这样更有效

 <android.support.constraint.ConstraintLayout
            android:layout_width="@dimen/_dp_85"
            android:layout_height="@dimen/_dp_35"
            android:id="@+id/quantityviewer"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="@+id/productName"
            android:background="@drawable/quantity"
            app:layout_constraintBottom_toBottomOf="@+id/productName">

        <TextView
                android:textColor="@color/black"
                android:text="@string/_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/quantity"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/increase"
                app:layout_constraintStart_toEndOf="@+id/decrease"
        />
        <ImageView
                app:layout_constraintStart_toStartOf="@id/quantityviewer"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/decrease"
                app:layout_constraintEnd_toStartOf="@id/quantity"
                android:src="@drawable/ic_minus"
                app:layout_constraintTop_toTopOf="@id/quantityviewer"
                app:layout_constraintBottom_toBottomOf="@id/quantityviewer"
                android:contentDescription="@string/todo"
        />
        <ImageView
                app:layout_constraintEnd_toEndOf="@id/quantityviewer"
                android:layout_width="wrap_content"
                android:src="@drawable/ic_plus"
                android:layout_height="wrap_content"
                android:id="@+id/increase"
                app:layout_constraintTop_toTopOf="@id/quantityviewer"
                app:layout_constraintBottom_toBottomOf="@id/quantityviewer"
                android:contentDescription="@string/todo" app:layout_constraintStart_toEndOf="@+id/quantity"
        />

    </android.support.constraint.ConstraintLayout>

quantitiy.xml (布局的形状)

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listview_background_shape">

    <corners android:radius="@dimen/_dp_5" />
    <stroke
            android:width="@dimen/_dp_1"
            android:color="@color/quantitystokecolor" />
</shape>

答案 1 :(得分:0)

我已经通过使用ImageButton而不是button解决了。

<ImageButton
                android:id="@+id/incrementButtton"
                android:layout_width="24dp"
                android:layout_height="24dp"
                android:padding="8dp"
                android:layout_gravity="center"
                android:gravity="center"
                android:background="?attr/selectableItemBackgroundBorderless"
                android:src="@drawable/ic_minus_symbol"
                android:scaleType="centerInside"
             />

我使用的波纹效果

android:background="?attr/selectableItemBackgroundBorderless"

答案 2 :(得分:0)

这对我有用。通过使我的图标drwableLeft并将其填充到左侧,您可以将其居中。您可以根据需要减少它的数量。

<com.google.android.material.button.MaterialButton
    android:layout_width="36dp"
    android:layout_height="36dp"
    android:background="@drawable/custom_small_button_bg"
    android:drawableLeft="@drawable/ic_minus"
    android:paddingStart="6dp"
    android:paddingLeft="6dp"
    app:backgroundTint="@null"/>