Bagaimana cara mengurangi bantalan bagian dalam di sekitar teks di dalam objek tombol Android?


92

Contoh tombol

Jadi, saat ini saya memiliki tombol yang terlihat seperti gambar pertama di atas. Bagaimana cara mengurangi padding di sekitar teks di dalam tombol itu sendiri (Agar lebih terlihat seperti gambar kedua)?

Lebar dan tinggi tata letak diatur sebagai:

android:layout_width="match_parent"
android:layout_height="wrap_content"

Bentuk gaya kustom memiliki parameter "

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">

Sisanya hanyalah atribut warna dan nilai jari-jari.

Untuk memperjelas, saya ingin bingkai tombol memeluk teks "Login" lebih dekat.

Semua bantuan dan umpan balik sangat dihargai. Terima kasih.


1
android: padding = "10dp kurangi 10 dp menjadi 5dp
Raghunandan

Itu terkait dengan bantalan luar Tombol. Saya mengacu pada padding internal "login" dan wadahnya. Terimakasih Meskipun.
Imran NZ

Ini membantu saya - stackoverflow.com/a/19227057/3325759 (penulis - @StinePike) Dari jawaban - Tambahkanandroid:includeFontPadding="false"
Mikelis Kaneps

mengesampingkan padding bekerja untuk saya. textView.setPadding (0,0,0,0);
M. Usman Khan

2
Letakkan android: minHeight = "0dp" android: minWidth = "0dp" di tombol. Ini seharusnya berhasil ..
viper

Jawaban:


234

Saya butuh waktu lama untuk menemukan ini, tetapi "padding" di sekitar teks di tombol tidak benar-benar padding sama sekali. Gaya Widget.Button default menyertakan properti minHeight. Mengubah minHeight pada tombol akan memungkinkan Anda menyesuaikan padding seperti yang diharapkan.

<Button
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textColor="@color/black"
        android:minHeight="40dip"/>


<style name="Widget.Holo.Button" parent="Widget.Button">
    <item name="android:background">@android:drawable/btn_default_holo_dark</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    <item name="android:textColor">@android:color/primary_text_holo_dark</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>

6
Saya menghadapi masalah serupa dengan lebar. Menyetel android: minWidth = "0dp" berfungsi, tapi kemudian pada tombol dengan teks panjang, saya perlu menyetel android: paddingRight dan android: paddingLeft untuk mencegah tata letak yang buruk.
Simon Featherstone

Saya Widget.Button tidak memiliki minHeight (sdk28)
RoR

Properti ada di tombol tema, bukan induk "Widget.Button". Jika Anda menggunakan tema yang berbeda dari "holo", itu mungkin di lokasi yang berbeda. Berikut adalah gaya untuk "holo" android.googlesource.com/platform/frameworks/base/+/master/core/…
Steven

5

Di Material Components Library, MaterialButtonmemiliki gaya default dengan insetBottomdan insetTopdengan nilai 6dp.

Anda dapat mengubahnya di tata letak:

  <com.google.android.material.button.MaterialButton
      android:insetTop="0dp"
      android:insetBottom="0dp"
      ../>

atau dengan gaya:

 <style name="Button_no_insets" parent="Widget.MaterialComponents.Button"..>
    <item name="android:insetTop">0dp</item>
    <item name="android:insetBottom">0dp</item>
 </style>

masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini


4

coba ini di file shape.xml kustom Anda

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:padding="1dp">

Anda juga dapat membuat perubahan di xml tombol Anda

android:layout_width="wrap_content"
android:layout_height="wrap_content"

2
Ini tidak bekerja sama sekali jika Anda membaca apa yang ditanyakan oleh pertanyaan asli
Jeremy

1

Jika Anda menginginkan bantalan atas dan bawah yang lebih kecil, gunakan ini:

 android:paddingTop="2dp"
 android:paddingBottom="2dp"

Itu untuk bantalan di luar tombol. Efek yang saya kejar adalah membuat bingkai Tombol memeluk teks "Login" lebih dekat. Terima kasih.
Imran NZ

1
Itu sudah menjadi bantalan bagian dalam tombol. Anda mungkin perlu memeriksa apakah Anda telah menambahkan baris seperti android:paddingatau android:layout_margin"di tampilan induk <shape />.
Neoh

0

Anda dapat menggunakan gaya Tanpa Batas di AppCompatButton seperti di bawah ini. Gunakan juga warna latar yang Anda sukai.

Widget.AppCompat.Button.Borderless.Colored

Kode tombol

<androidx.appcompat.widget.AppCompatButton
        android:id="@+id/button_visa_next"
        android:background="@color/colorPrimary"
        style="@style/Widget.AppCompat.Button.Borderless.Colored"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/spacing_normal"
        android:text="@string/next"
        android:textColor="@color/white"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Keluaran:

masukkan deskripsi gambar di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.