Saya menggunakan actionbarsherlock. Sepotong kode di bawah ini bertanggung jawab untuk mengubah latar belakangnya menjadi kustom.
<style name="Widget.Styled.ActionBar" parent="Widget.Sherlock.ActionBar">
<item name="background">@drawable/actionbar_bg</item>
<item name="android:background">@drawable/actionbar_bg</item>
<...>
</style>
<style name="Theme.MyApp" parent="@style/Theme.Sherlock.Light">
<item name="actionBarStyle">@style/Widget.Styled.ActionBar</item>
<item name="android:actionBarStyle">@style/Widget.Styled.ActionBar</item>
<..>
</style>
Dan itu berfungsi untuk actionbarsherlock (pada versi di bawah honeycomb). Tetapi di ICS saya memiliki bayangan di bawah actionbar yang tidak saya inginkan. Apa item gaya untuk menghilangkannya?
android
android-actionbar
actionbarsherlock
Michał K
sumber
sumber
getSupportActionBar().setElevation(0);
tidak berfungsi. Jadi Anda telah memasukkan<item name="android:windowContentOverlay">@null</item>
tema aplikasi Anda. Saya punya masalah yang sama. Sekarang saya sudah berdua. setElevation from dan menambahkan item windowContentOverlay dalam tema aplikasi. setElevation berfungsi untuk android 5.0 dan lebih tinggi sementara yang lain berfungsi untuk pre-lollipop. Bersulang!Untuk Android 5.0, jika Anda ingin mengaturnya langsung menjadi gaya gunakan:
dan untuk penggunaan kompatibilitas perpustakaan Dukungan:
Contoh gaya untuk tema cahaya AppCompat:
Kemudian terapkan gaya ActionBar khusus ini ke tema aplikasi Anda:
Untuk Android pra 5.0, tambahkan ini juga ke tema aplikasi Anda:
sumber
windowContentOverlay
ke action bar theme, bukan ke theme app.android:elevation
untuk perangkat Lollipop). Saya tidak bisa melakukannya, menggunakan pendekatan ini. Saya percaya itu akan cukup lurus. Letakkan nilai bukan nol untuk atribut elevasi dan hanya itu saja.android:windowContentOverlay
API pre lollipop? Saya tidak dapat mengkompilasi jika minSDK saya adalah pre lollipop tetapi targetnya adalah 21?<style name="Theme.MyApp.ActionBar" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
tanpastyle/
diparent
atribut.Pada Android 5.0 ini telah berubah, Anda harus memanggil setElevation (0) pada bilah tindakan Anda. Perhatikan bahwa jika Anda menggunakan perpustakaan dukungan, Anda harus memanggilnya seperti itu:
Ini tidak terpengaruh oleh item gaya windowContentOverlay, jadi tidak diperlukan perubahan gaya
sumber
tambahkan
app:elevation="0dp"
di AppBarLayout untuk menyembunyikan bayangan di appbarsumber
Jika Anda bekerja dengan ActionBarSherlock
Dalam tema Anda, tambahkan ini:
sumber
Anda harus mengatur
app:elevation="0dp"
dalamandroid.support.design.widget.AppBarLayout
dan kemudian berfungsi.sumber
tapi tidak
bekerja untuk saya di Android L
sumber
Saya memiliki masalah yang sama, dan saya berhasil menyelesaikan masalah ini. Yang harus Anda lakukan hanyalah mengubah nilai elevasi menjadi 0 floating point dalam aktivitas di mana Anda ingin menghapus ketinggian.
Jika Anda ingin mengubahnya dalam suatu aktivitas yang dipanggil
MyActivity.java
maka Anda harus mendapatkannyaActionBar
pertama.Impor
ActionBar
kelas terlebih dahulusetelah mengimpor Anda harus menginisialisasi variabel bar tindakan dan mengatur ketinggiannya ke 0.
sumber
Untuk Pengembang Xamarin, silakan gunakan:
SupportActionBar.Elevation = 0;
untukAppCompatActivity
atauActionBar.Elevation = 0;
untuk Kegiatan yang tidak sesuaisumber
Solusi untuk Kotlin (Android 3.3, Kotlin 1.3.20)
sumber
Coba ini membantu saya tanpa mengubah tema. Letakkan AppBarLayout Anda di dalam tata letak apa pun. Semoga ini bisa membantu Anda
sumber
Bagi mereka yang mengerjakan fragmen dan menghilang setelah pengaturan
toolbar.getBackground().setAlpha(0);
atau penghilangan apa pun, saya pikir Anda harus membawa AppBarLayout Anda ke yang terakhir di xml, jadi Fragmennya kemudian AppBarLayout lalu relativelayout / constraint / linear mana pun yang Anda gunakan.sumber
Tambahkan ini
toolbar.getBackground().setAlpha(0);
ke dalam metode OnCreate. Tambahkan ini:android:elevation="0dp" android:background="@android:color/transparent
ke file xml toolbar Anda.sumber