Jadi, saya baru saja memperbarui basis kode saya ke Lollipop, dan saya mengalami masalah dengan Bilah Tindakan. Saya menggunakan AppCompat dan ActionBarActivity, dan meluaskan tampilan kustom. Tampaknya tampilan kustom tidak lagi memenuhi seluruh lebar layar, meninggalkan garis tipis di sebelah kiri
Cara yang dulu terlihat
Cara tampilannya sekarang
Ini adalah kode yang saya gunakan untuk menyiapkan Bilah Tindakan. Ada yang punya ide?
final ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setCustomView(R.layout.action_bar_content_search_custom_view);
actionBar.setBackgroundDrawable(null);
// actionBar.setStackedBackgroundDrawable(null);
TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title);
title.setText(R.string.youtube);
ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
Edit
Mengambil tampilan kustom dan mengubah latar belakang sekarang memakan seluruh lebar. Jadi masalahnya adalah, bagaimana kita bisa membuat CustomView menjadi seluruh lebar ActionBar?
android
android-actionbar
android-appcompat
android-5.0-lollipop
Stevie Kideckel
sumber
sumber
appcompat-v7
.ImageView
. Coba nonaktifkan sebagai permulaan.Jawaban:
Sepertinya ini disebabkan oleh perubahan terbaru pada
ActionBar
terbaru padaappcompat-v7
pembaruan terkini . Sepertinya ada perubahan signifikan pada cara Anda menangani bilah tindakan.Saya menghadapi masalah yang sama dan setelah membaca
ActionBar
dokumentasi , dan terutama kutipan berikut saya menemukan solusinya.Cara saya melihatnya,
AppCompat
tema diubah dan di satu sisi tampaknya merusak beberapa hal tetapi memberikan lebih banyak fleksibilitas di sisi lain. Saya merekomendasikan mengikuti langkah-langkah ini:.NoActionBar
gaya dalam aktivitas Anda seperti yang dijelaskan dalam kutipan di atasandroid.support.v7.widget.Toolbar
ke tata letak Aktivitas Andaapp:contentInsetStart="0dp"
atributnya. Ini adalah masalah utama dengan margin yang Anda gambarkan dalam pertanyaan AndaBiasanya disarankan agar Anda melakukannya dalam file tata letak terpisah dan menggunakannya
include
dalam tata letak aktivitas sehingga Anda hanya perlu menyesuaikan Toolbar di satu tempat jika digunakan dalam banyak aktivitas.findViewById
dansetSupportActionBar
dalam Aktivitas AndaonCreate
untuksignal to the Activity which Toolbar should be treated as the Activity's action bar
onCreateOptionsMenu
akan ditambahkan ke bilah alat dan akan diperlakukan sebagai bilah tindakan aktivitas.sumber
Error inflating class fragment
xmlns:app="http://schemas.android.com/apk/res-auto"
setCustomView
. Buat saja file tata letak dengan widget yang ingin Anda sertakan di toolbar (misalnya, tambahkan tampilan anak ke file tata letak yang dijelaskan di bagian 3 jawaban)Alih-alih melakukan begitu banyak pekerjaan seperti yang disebutkan oleh Muzikant dan menyukai jawaban ini
Anda harus menambahkan hanya dua baris kode terakhir untuk menyelesaikan masalah Anda.
Saya harap ini dapat membantu Anda dan orang lain.
Tambahkan empat baris ini ke kode di atas, sehingga celah sisi kanan juga dihapus dari bilah tindakan dukungan.
sumber
Saya pikir Anda juga bisa melakukannya dengan gaya. coba ini. mengujinya di kitkat
sumber
Tak satu pun dari jawaban lain yang berhasil untuk saya, jadi saya melihat gaya AppCompat v7 yang sebenarnya, yang ditemukan di sini .
Jika Anda melihat gaya Base.Widget.AppCompat.ActionBar, ini memiliki:
Jadi jelas kita hanya perlu mengganti properti tersebut dengan gaya bilah tindakan kita sendiri:
Ini berhasil dengan baik bagi saya, semoga membantu orang lain juga.
sumber
Setelah banyak membenturkan kepala saya ke monitor, ini berhasil untuk saya
GetCustomView (). GetParent () adalah triknya
sumber
Saya baru saja mengalami masalah ini hari ini juga, kemudian saya menemukan bahwa saya mengalaminya
res/values-v21/styles.xml
di dalam proyek saya yang dibuat secara otomatis oleh Android Studio dan itulah penyebabnya.Mengapa?
Karena konten saya
res/values-v21/styles.xml
adalah:Dan saya
res/values/styles.xml
berisi sesuatu seperti:Kemudian ketika saya menjalankan aplikasi saya di Lollipop,
res/values-v21/styles.xml
itu digunakan, dan itu menyebabkan masalah persis yang dimiliki OP. Jadi saya sampai pada perbaikan sederhana hanya menghapus:di
res/values-v21/styles.xml
sumber
ke titik:
pastikan mengimpor bilah alat yang benar -
android.support.v7.widget.Toolbar;
sumber
Tuliskan dua baris ini sebagai tambahan kode Anda
sumber