Saya menggunakan tampilan actionbar khusus, dan seperti yang Anda lihat pada tangkapan layar di bawah ini, ada ruang abu-abu kosong di actionbar. Saya ingin menghapusnya.
Apa yang telah saya lakukan:
res / values-v11 / styles.xml
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="actionBarStyle">@style/ActionBarStyle</item>
</style>
res / values / my_custom_actionbar.xml
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<style name="ActionBarStyle" parent="@style/Widget.AppCompat.Light.ActionBar.Solid">
<item name="android:height">60dp</item>
</style>
</resources>
Nyata
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/AppName"
android:theme="@style/AppBaseTheme" >
<!-- activities... etc -->
</application>
Aktifitas utama
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
ActionBar actionbar = getSupportActionBar();
actionbar.setDefaultDisplayHomeAsUpEnabled(false);
actionbar.setDisplayHomeAsUpEnabled(false);
actionbar.setDisplayShowCustomEnabled(true);
actionbar.setDisplayShowHomeEnabled(false);
actionbar.setDisplayShowTitleEnabled(false);
actionbar.setDisplayUseLogoEnabled(false);
actionbar.setHomeButtonEnabled(false);
// Add the custom layout
View view = LayoutInflater.from(this).inflate(R.layout.actionbar, null, false);
actionbar.setCustomView(view);
}
Saya telah menemukan posting baru-baru ini, yang menunjukkan bahwa ada masalah dengan rilis terbaru. Saya juga memperbarui ADT dan SDK ke Android 5.
Tampilan kustom Android ActionBar tidak mengisi induk
Saya tidak tahu apa yang harus saya lakukan.
Edit (solusi sebagian):
Tidak bekerja di Android <= API 10.
Android Lollipop, tampilan khusus AppCompat ActionBar tidak memakan seluruh lebar layar
Apa yang telah saya ubah:
Gunakan versi SDK terbaru:
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="21" />
Tambahkan toolbarStyle
:
<style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light">
<item name="android:actionBarStyle">@style/ActionBarStyle</item>
<item name="actionBarStyle">@style/ActionBarStyle</item>
<item name="android:toolbarStyle">@style/ToolbarStyle</item>
<item name="toolbarStyle">@style/ToolbarStyle</item>
</style>
<style name="ToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
<item name="contentInsetStart">0dp</item>
<item name="android:contentInsetStart">0dp</item>
</style>
sumber
Jawaban:
Jika Anda menambahkan
Toolbar
via XML, Anda bisa menambahkan atribut XML untuk menghapus inset konten.sumber
android.support.v7.widget.Toolbar
:app:contentInsetStartWithNavigation="0dp"
sudah cukup.coba ini:
Saya menggunakan kode ini dalam proyek saya, semoga berhasil;
sumber
actionBar.setCustomView(R.layout.app_title_bar);
Toolbar parent =(Toolbar) actionBar.getCustomView().getParent();
parent.setContentInsetsAbsolute(0,0);
daripada menggembungkan tata letak.parent.setPadding(0, 0, 0, 0);
untuk tablet jugacontentInsetStart
Inset kiri disebabkan oleh Toolbar yang secara default 16dp.Ubah ini 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.Ternyata ini adalah bagian dari Spesifikasi Desain Bahan baru yang diperkenalkan di versi 24 perpustakaan Desain.
https://material.google.com/patterns/navigation.html
Namun, dimungkinkan untuk menghapus ruang tambahan dengan menambahkan properti berikut ke widget Toolbar.
Sebelum :
Setelah:
sumber
Saya menemukan resolusi lain (referensi appcompat-v7) yang mengubah toolbarStyle, kode berikut:
sumber
Ini seharusnya cukup bagus.
sumber
Cukup Ubah styles.xml Anda
sumber
Alih-alih menambahkan bilah alat di tata letak, Anda dapat mengatur tampilan khusus seperti yang ditunjukkan di bawah ini.
sumber
Hanya tambahkan
app:contentInsetStart="0dp"
ke bilah alat untuk menghapus ruang yang tersisa.Jadi definisi Toolbar Anda terlihat seperti ini
dan terlihat seperti ini
sumber
Menggunakan
AppCompatAcitivty
Anda dapat menggunakan hanya dengansumber
Anda perlu menambahkan baris ini app2: contentInsetStart = "0dp" di bilah alat Anda
sumber
app:contentInsetStart="0dp"
Saya tidak menemukan solusi untuk masalah saya (gambar pertama) di mana pun, tetapi akhirnya saya berakhir dengan solusi paling sederhana setelah beberapa jam penggalian. Harap dicatat bahwa saya mencoba dengan banyak atribut xml seperti
app:setInsetLeft="0dp"
, dll. Tetapi tidak satupun yang membantu dalam kasus ini.Gambar 1
kode berikut menyelesaikan masalah ini seperti pada Gambar 2
Gambar 2
sumber
Mengatur atribut "contentInset ..." ke 0 di Toolbar tidak berfungsi untuk saya. Solusi Nilesh Senta untuk memperbarui gaya berhasil!
styles.xml
java (onCreate)
sumber
Buat bilah alat seperti ini:
ikuti tautan ini untuk lebih banyak - Tip Android
sumber
hanya menambahkan
android:padding="0dp"
pekerjaan untukkusumber
sumber
Anda cukup menggunakan tata letak relatif di dalam grup tampilan bilah alat di file xml Anda dan sesuaikan posisi widget saat Anda memerlukannya untuk kasus penggunaan Anda. Tidak perlu membuat tata letak khusus & mengembang dan melampirkan ke bilah alat. Setelah selesai dalam kode java Anda, gunakan setContentInsetsAbsolute (0,0) dengan objek bilah alat Anda sebelum mengaturnya sebagai bilah tindakan dukungan di tata letak Anda.
sumber
Akan lebih baik untuk menambahkan item latar belakang ke dalam gaya bilah tindakan aplikasi agar konsisten dengan warna latar belakang bilah tindakan yang disesuaikan:
Setelah android 6.0, actionbar bahkan memiliki ruang margin-kanan dan tidak dapat diatur. Tambahkan penyesuaian margin kanan dalam aktivitas seperti ini: ( tampilan adalah bilah tindakan yang disesuaikan atau tombol kanan di dalamnya)
Machenisme actionbar hanya didukung setelah aplikasi Android 3.0+. Jika kita menggunakan bilah alat (dari support lib v7) sebagai gantinya, kita harus tata letak di setiap xml dari setiap aktivitas, dan menangani masalah tumpang tindih dengan bilah status sistem di perangkat Android 5.0 atau yang lebih baru.
sumber
Kotlin
sumber
ini bekerja untuk saya
sumber
Jika Anda memeriksa dokumentasi bilah alat, secara default memiliki gaya yang ditentukan dan ada item contentInsetStart.
Jika Anda ingin mengganti bantalan ini maka dapat dilakukan dengan dua cara.
1.Timpa gaya dan tambahkan gaya Anda sendiri dengan nilai contentInsetStart dan contentInsetEnd
2.Dalam XML, Anda dapat langsung menentukan nilai contentInsetStart dan contentInsetEnd
sumber
Apakah aplikasi Anda mendukung Android 5? Jika tidak mendukung maka Anda dapat menurunkan versi dukungan actionbar v7. Itu terlihat seperti:
juga membuat versi target aplikasi kurang dari 21.
Jika aplikasi Anda mendukung Android 5 -> Anda akan memerlukan ToolBar khusus. (Karena appcombat-v7: 21 ada perubahan).
sumber