Adakah yang tahu cara mengatur padding antara ikon beranda ActionBar dan judul?
android
android-actionbar
Alesqui
sumber
sumber
Jawaban:
Saya mengadaptasi jawaban Cliffus dan menetapkan logo-drawable dalam definisi gaya bilah tindakan saya, misalnya seperti ini di res / style.xml:
Drawable tampak seperti Cliffus (di sini dengan ikon peluncur aplikasi default) di res / drawable / actionbar_space_between_icon_and_title.xml:
Di android_manifest.xml Anda masih dapat menyetel ikon aplikasi yang berbeda (ikon peluncur di 'desktop'. Definisi logo yang berbeda di sini terlihat dalam aktivitas tanpa bilah tindakan.
sumber
EDIT : pastikan Anda menyetel drawable ini sebagai LOGO , bukan sebagai ikon aplikasi Anda seperti yang dilakukan beberapa pemberi komentar.
Cukup buat XML drawable dan letakkan di folder resource "drawable" (tanpa kepadatan atau konfigurasi lain).
Langkah terakhir adalah menyetel drawable baru ini sebagai logo dalam manifes Anda (atau pada objek Actionbar dalam aktivitas Anda)
Semoga berhasil!
sumber
Saya juga menghadapi masalah serupa, dalam kasus saya, saya harus menetapkan judul secara dinamis pada setiap aktivitas tergantung pada kontennya.
Jadi ini berhasil untuk saya.
Jika yang Anda inginkan hanyalah jarak, ini adalah solusi termudah yang dapat saya pikirkan.
sumber
app:titleMarginStart
atribut dalam XML tata letak.Beginilah cara saya mengatur padding antara ikon beranda dan judul.
Saya tidak dapat menemukan cara untuk menyesuaikan ini melalui gaya xml ActionBar. Artinya, XML berikut tidak berfungsi:
Namun, jika Anda ingin mencapai ini melalui xml, kedua tautan ini dapat membantu Anda menemukan solusi:
https://github.com/android/platform_frameworks_base/blob/master/core/res/res/values/styles.xml
(Ini adalah tata letak sebenarnya yang digunakan untuk menampilkan ikon beranda di bilah tindakan) https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/action_bar_home.xml
sumber
padding
, tampaknya digunakanmarginEnd
sejak api 17 - yang mungkin akan merusak solusi ini. Lihat milik saya di bawahIni adalah pertanyaan umum dalam Desain Material karena Anda mungkin ingin menyejajarkan judul bilah alat dengan konten dalam fragmen di bawah ini. Untuk melakukannya, Anda dapat mengganti pengisi default "12dp" dengan menggunakan atribut contentInsetStart = "72dp" di layout Anda seperti yang ditunjukkan di bawah ini
toolbar.xml
Kemudian dalam aktivitas Anda, telepon
Dan Anda berakhir dengan ini:
sumber
app:titleMarginStart="dimension"
mengincar gelar secara langsung.contentInsetStart
memberi spasi antara ikon beranda dan judul, jawabannya setidaknya bisa mengatakan demikian. Pengujian saya barusan dengancontentInsetStart
sepertinya menempatkan spasi sebelum logo (yang memang tidak sama dengan ikon home).Bagi saya, hanya kombinasi berikut yang berhasil, diuji dari API 18 hingga 24
di mana di "app" adalah:
xmlns:app="http://schemas.android.com/apk/res-auto"
sebagai contoh.
sumber
Jika Anda menggunakan toolbar dari AppCompat (android.support.v7.widget.Toolbar,> = revision 24, June 2016), padding antara ikon dan judul dapat diubah dengan nilai berikut:
Untuk meningkatkan jawaban saya, Anda dapat menggunakannya pada toolbar Anda secara langsung di dalam aktivitas Anda atau Anda dapat membuat file layout baru untuk toolbar Anda. Dalam kasus ini, Anda hanya perlu mengimpor @id toolbar Anda menggunakan properti include pada setiap tampilan yang diperlukan.
Anda kemudian dapat mengimpor tata letak Anda di activity.xml
sumber
Menggunakan
titleMarginStart
karya untuk saya. Contoh Xamarin:Atur logo seperti ini:
sumber
Saya menggunakan \ t sebelum judul dan bekerja untuk saya.
sumber
Saya menggunakan gambar khusus, bukan teks judul default di sebelah kanan logo aplikasi saya. Ini diatur seperti programatik
Masalah dengan jawaban di atas untuk saya adalah saran @ Cliffus tidak bekerja untuk saya karena masalah yang telah diuraikan orang lain dalam komentar dan sementara pengaturan padding programatik @dushyanth mungkin telah berfungsi di masa lalu, saya akan berpikir bahwa fakta bahwa spasi adalah sekarang diatur menggunakan
android:layout_marginEnd="8dip"
sejak API 17 secara manual mengatur padding seharusnya tidak berpengaruh. Lihat link yang dia posting ke git untuk memverifikasi statusnya saat ini.Solusi sederhana bagi saya adalah menetapkan margin negatif pada tampilan kustom saya di actionBar, seperti itu
android:layout_marginLeft="-14dp"
. Tes cepat menunjukkan bahwa ini berfungsi untuk saya di 2.3.3 dan 4.3 menggunakanActionBarCompat
Semoga ini bisa membantu seseorang!
sumber
Saya memecahkan masalah ini dengan menggunakan tata letak Navigasi kustom
Dengan menggunakannya, Anda dapat menyesuaikan apa pun dalam judul di bilah tindakan:
build.gradle
AndroidManifest.xml
styles.xml
action_bar.xml
sumber
Saya memiliki masalah serupa tetapi dengan jarak antara atas dan ikon / logo aplikasi khusus di bilah tindakan. Solusi Dushyanth untuk mengatur padding secara terprogram bekerja untuk saya (mengatur padding pada ikon aplikasi / logo). Saya mencoba menemukan android.R.id.home atau R.id.abs__home ( hanya ActionBarSherlock , karena ini memastikan kompatibilitas ke belakang), dan tampaknya berfungsi di perangkat 2.3-4.3 yang telah saya uji.
sumber
Untuk kasus saya, itu dengan Toolbar saya menyelesaikannya seperti ini:
ic_toolbar_drawble.xml
Di Fragmen saya, saya memeriksa api:
Semoga berhasil!
sumber
Anda dapat mengubah drawableSize dari DrawerArrow Anda seperti ini:
Ini bukan jawaban yang benar, karena Anda tidak dapat memilih sisi padding dan penskalaan ikon DrawerArrow saat mengubah drawableSize (drawableSize = width = height). Tapi Anda bisa margin dari kiri. Untuk margin dari kanan lakukan
sumber
Saya menggunakan metode ini
setContentInsetsAbsolute(int contentInsetLeft, int contentInsetRight)
dan berhasil!sumber
Saat Anda menggunakan Toolbar kustom, Anda dapat menggunakan
dan dalam tata letak toolbar Anda cukup setel
app:titleMarginStart="16dp"
Perhatikan bahwa Anda harus mengatur ikon sebagai logo, jangan gunakan
getSupportActionBar().setIcon(R.drawable.logo)
sebagai gantinya:getSupportActionBar().setLogo(R.drawable.logo)
sumber
Saya terbiasa
AppBarLayout
dan biasaImageButton
melakukannya.Kode Java saya:
sumber
Anda juga dapat mencapai metode yang sama:
sumber
Di XML Anda, setel
app:titleMargin
di tampilan Toolbar Anda sebagai berikut:Atau di kode Anda:
sumber
ini berfungsi bagi saya untuk menambahkan padding ke judul dan untuk
ActionBar
ikon saya telah mengaturnya secara terprogram.sumber
Cukup tambahkan
" "
untuk nama aplikasi Anda. Ini akan menambah spasi antara ikon dan judulsumber