Bagaimana cara menyingkirkan lapisan tambahan di Toolbar baru dengan Android SDK API versi 21 (perpustakaan dukungan)?
Saya berbicara tentang panah merah pada gambar ini:
Berikut adalah kode yang saya gunakan:
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:background="?attr/colorPrimary"
android:padding="0dp"
android:layout_margin="0dp">
<RelativeLayout
android:id="@+id/action_bar_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="0dp"
android:padding="0dp"
android:background="#000000">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
</Toolbar>
Seperti yang Anda lihat saya telah mengatur semua padding yang relevan ke 0, tetapi masih ada padding di sekitar Spinner. Apa yang telah saya lakukan salah atau apa yang harus saya lakukan untuk menyingkirkan lapisan tambahan?
Sunting Beberapa orang mempertanyakan mengapa saya mencoba melakukan ini.
Sesuai spesifikasi Desain Bahan, pemintal harus 72dp dari sisi kiri
Saya perlu menetralkan padding yang Google pasang untuk menempatkan spinner saya dengan benar:
Edit 2
Sesuai jawaban Chris Bane di bawah ini, saya mengatur contentInsetStart ke 0. Untuk perpustakaan dukungan Anda harus menggunakan namespace aplikasi:
<android.support.v4.widget.DrawerLayout
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.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="@dimen/action_bar_height"
android:background="?attr/colorPrimary"
android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
</android.support.v4.widget.DrawerLayout>
Saya harap ini membantu seseorang, itu membuat saya bingung selama beberapa hari.
sumber
contentInsetX
properti ke 0dp.Jawaban:
contentInsetStart
Inset kiri disebabkan oleh Toolbar yang secara default 16dp.Ubah ini menjadi 72dp untuk menyelaraskan ke baris kunci.
Pembaruan untuk perpustakaan dukungan v24.0.0:
Untuk mencocokkan spesifikasi Material Design ada atribut tambahan
contentInsetStartWithNavigation
yang secara default adalah 16dp. Ubah ini jika Anda juga memiliki ikon navigasi.sumber
contentInsetStartWithNavigation
ke 0 melakukan trik untuk saya dengan dukungan-v4: 25.0.1Jawaban di atas benar tetapi masih ada satu hal yang mungkin membuat masalah (Setidaknya itu membuat masalah bagi saya)
Saya menggunakan yang berikut ini dan tidak berfungsi dengan baik pada perangkat yang lebih lama -
Kuncinya di sini cukup gunakan yang berikut -
dan singkirkan -
Dan sekarang itu akan berfungsi dengan baik di semua perangkat.
Semoga ini bisa membantu.
sumber
app:contentInsetStartWithNavigation
dapat membantu memperbaiki hal-hal jika belum cukupSimpley menambahkan dua baris ini di toolbar. Kemudian kita mendapatkan bcoz ruang sisi kiri baru dihapus secara default 16dp.
sumber
Seandainya ada orang lain yang tersandung di sini ... Anda dapat mengatur bantalan juga, misalnya:
Atau contentInset :
sumber
Inilah yang saya lakukan dan berfungsi dengan baik di setiap versi Android.
toolbar.xml
MyActivity.java (Untuk menyembunyikan judul bilah alat default)
Hasil dengan Keylines Shown
sumber
Jadikan bilah alat Anda seperti:
Anda perlu menambahkan
atribut untuk menambahkan spasi
ikuti tautan ini untuk lebih banyak - Tip Android
sumber
Kombinasi dari
android:padding="0dp"
Di xml untuk Bilah Alatdan
mToolbar.setContentInsetsAbsolute(0, 0)
Dalam kodeIni berhasil untuk saya.
sumber
ini berfungsi untuk saya di ponsel Android 7.11 saya:
catatan: Saya sama sekali tidak berhasil dengan padding = 0, atau contentInsetLeft = 0, atau contentInsetStart = 0
sumber
Ok jadi jika Anda membutuhkan 72dp, tidak bisakah Anda menambahkan perbedaan padding dalam file xml? Dengan cara ini Anda menjaga Inset / Padding default Android yang mereka ingin kita gunakan.
Jadi: 72-16 = 56
Untuk itu: tambahkan padding 56dp untuk menempatkan diri Anda pada indent / margin total 72dp.
Atau Anda bisa mengubah nilai dalam file Dimen.xml. itulah yang saya lakukan sekarang. Itu mengubah segalanya, seluruh tata letak, termasuk ToolBar ketika diimplementasikan dengan cara Android baru yang tepat.
File Sumber Daya Dimen
Tautan yang saya tambahkan menunjukkan nilai Dimen pada 2dp karena saya mengubahnya tetapi secara default ditetapkan pada 16dp. Hanya FYI ...
sumber
sumber