Saya mencoba untuk mengatur padding di <shape>
dalam sebuah file / layout XML. Tapi apapun yang saya atur, tidak ada perubahan terkait padding. Jika saya memodifikasi properti lain, saya melihat efeknya pada UI. Tapi itu tidak berfungsi dengan bantalan. Bisakah Anda memberi tahu tentang kemungkinan alasan mengapa hal ini terjadi?
Berikut adalah Bentuk XML yang saya coba gaya:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp"
android:color="#ffffff"
android:dashWidth="2dp"/>
<solid android:color="@color/button_white_cover"/>
<corners android:radius="11dp"/>
<padding android:left="1dp"
android:top="20dp"
android:right="20dp"
android:bottom="2dp"/>
</shape>
sumber
<item>
menerima anak yang dapat digambar (meskipun tidak didokumentasikan secara eksplisit). Begitulah cara Anda mencapai perilaku ini dalam satu xml.<shape><padding>
untuk ?Seperti yang telah disinggung oleh beberapa komentar, pendekatan terbaik adalah dengan membungkus
<shape>
dalam sebuah<item>
elemen dan mengatur padding di sana. Namun ada opsi lain yang tersedia yang dirinci dalam tautan di bawah ini. misalnya<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"> <shape android:shape="rectangle"> ... </shape> </item> </layer-list>
Bergantung pada kebutuhan Anda, daripada menggunakan daftar lapisan, Anda dapat menggunakan salah satu jenis drawable berikut:
Untuk informasi selengkapnya tentang tipe drawable yang tersedia, lihat dokumentasi android ini
Sumber:
sumber
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
Jawaban oleh Lyobomyr berfungsi, tetapi di sini adalah solusi yang sama diterapkan tetapi tanpa biaya tambahan untuk membuat drawable baru, sehingga meminimalkan kekacauan file:
https://stackoverflow.com/a/3588976/578746
Salin / Tempel jawaban dengan segera pada jawaban SO di atas:
<item android:left="6dp" android:right="6dp"> <shape android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0"/> </shape> </item>
sumber
Anda dapat mencoba insets:
<?xml version="1.0" encoding="UTF-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetBottom="2dp" android:insetLeft="1dp" android:insetRight="20dp" android:insetTop="20dp"> <shape android:shape="rectangle"> <stroke android:width="1dp" android:color="#ffffff" android:dashWidth="2dp" /> <solid android:color="@color/button_white_cover" /> <corners android:radius="11dp" /> </shape> </inset>
sumber
Saya memecahkan masalah ini seperti ini:
<shape android:shape="oval" > <stroke android:width="4dp" android:color="@android:color/transparent" /> <solid android:color="@color/colorAccent" /> </shape>
baru saja menambahkan guratan transparan padanya.
sumber