Çift yönlü bir aksiyon çubuğuna sahip olmak istiyorum (malzeme kılavuzundaki örneklerde olduğu gibi), ancak başlığında (muhtemelen) 2 satır metin var. Kullandığım başlık dinamik ve sayfada görüntülenen öğeye bağlı. Eğer bir satır varsa normal bir eylem çubuğu gibi görünmeli, eğer 2 satır varsa, metin kırılmalı ve yeni bir satıra bırakılmalıdır. Bir veya iki satır varsa, işlem düğmeleri metnin en üst satırıyla aynı hizada kalmalıdır.Android Araç Çubuğu başlığında iki satırlı mı?
Toolbar'un, eylem çubuklarını gerçekleştirmenin yeni dinamik yolu olduğunu okudum, bu yüzden muhtemelen gidilecek yol olacağını düşünmüştüm (buradaki yanıtları biliyorum, eski eylem çubuğu başlık metnini geçersiz kılabilirsiniz. satırlar, ama bu da benim için ne gittiğime benzemiyor. Android 4.4+ kullanıyorum, bu yüzden Araç Çubuğu için appcompat v7 kütüphanesini kullanmam gerekiyor.
Başlık metin görünümünün yalnızca tek bir satırla sınırlandırıldığı koda bakarken buldum (https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v7/appcompat/src/android/support/v7/widget/Toolbar.java - mTitleTextView.setSingleLine();
kodunu içerir).
Sonra tek bir alt yazı altyazısı olduğundan ve bu metnin biçimini değiştirebildiğimiz için onu başlık metniyle aynı şekilde biçimlendirebileceğimi ve gerekirse başlığımı iki bölüm halinde hazırlayabileceğimi düşündüm. Dizeyi ayırmak için bazı temel kodlar yazdım, ancak bunu bölmek için ihtiyacım olup olmadığını anlayabildim - ve pratikte toolbar.isTitleTruncated()
'un her zaman false değerini döndürdüğünü fark ettim (her ikisi de araç çubuğundaki nesneden doğrudan erişildi ve getSupportActionBar().isTitleTruncated()
).
Toolbar
içinde
TextView
sarmak cevabını
here çalıştım ama bunu yaparken Çubuğu eylem düğmeleri uyum sağlamak
TextView
alınamıyor. Tek bir satır için doğru hizalarsam (üst dolgu kullanarak), o zaman çift satır için yanlıştır, ya da tam tersi. İşte benim kod:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/view_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/fragment_pager"
android:name="com.example.ProductPagerFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.v7.widget.Toolbar
android:id="@+id/product_details_toolbar"
style="@style/style.toolbar"
android:layout_width="match_parent"
android:layout_height="@dimen/double_height_toolbar"
android:minHeight="?attr/actionBarSize"
android:gravity="top"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" >
<TextView
android:id="@+id/product_details_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:paddingTop="@dimen/padding_normal"
style="@android:style/TextAppearance.Holo.Widget.ActionBar.Title.Inverse"
android:maxLines="2" />
</android.support.v7.widget.Toolbar>
herkes herhangi bir fikir var mı? Bu gerçekten çok zor olması gerektiğini Android kurallarına aykırı bir şey mi?
Güncelleme: gösteri amaçlı ekleyerek görüntüleri:
o görünmelidir nasıl
şimdi görünüyor nasıl:
Ben https://code.google.com/p/android/issues/detail yarattı? id = 81987 isTitleTruncated() çalışmıyor. – gkee