是否可以使用多行創建操作欄中的標題?我需要一個雙重間隔的標題。操作欄標題有多行?
回答
不,但您可以用單獨的徽標圖形(android:logo
,然後setDisplayUseLogoEnabled()
)替換圖標。您可以將雙行標題作爲徽標圖形的一部分嵌入,然後不通過setDisplayShowTitleEnabled()
顯示原始標題字符串。 AFAIK,這個組合應該可以工作。
ActionBar上的默認TextView不支持換行,並且沒有公開的方法將其設置爲換行。因此,創建一個靈活的佈局,像這樣的:action_bar_title_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/action_bar_title"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:ellipsize="end"
android:maxLines="2"/>
</LinearLayout>
然後設置這個作爲你的動作條的自定義佈局:
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setCustomView(R.layout.action_bar_title_layout);
((TextView) findViewById(R.id.action_bar_title)).setText(
"This is a long text title that will wrap to multiple lines, when necessary.");
很好的解決方案。謝謝。 – PeteH
我發現了一個更好的解決方案完美的作品最多Android 4.2.2的圖標和標題是一個可點擊的項目。
int titleId = Resources.getSystem()
.getIdentifier("action_bar_title", "id", "android");
if (titleId > 0) {
TextView title = (TextView) findViewById(titleId);
title.setSingleLine(false);
title.setMaxLines(2);
title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
}
如果您正在使用ActionBarSherlock,使用此代碼:
int titleId = Resources.getSystem()
.getIdentifier("action_bar_title", "id", "android");
if (titleId == 0) {
titleId = com.actionbarsherlock.R.id.abs__action_bar_title;
}
TextView title = (TextView) findViewById(titleId);
if (title != null) {
title.setSingleLine(false);
title.setMaxLines(2);
title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
}
這通過使用支持庫的ActionBar以及4.4。但在平臺上失敗<= 2.3 – NKijak
我不太清楚,如果你正在尋找以下,但:
actionBar.setSubtitle(字符串字符串)在主Title下面設置第二行,使用較小的字體。
例如:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_left_drawer_item_clicked);
String value = getIntent().getExtras().getString("drawerItemString");
ActionBar actionBar = getActionBar();
// Make sure we're running on Honeycomb or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
// Show the Up button in the action bar.
actionBar.setDisplayHomeAsUpEnabled(true);
}
actionBar.setTitle(selectedBook.getTitle());
actionBar.setSubtitle(selectedBook.getAuthorName());
}
此處列出了最佳解決方案。應該被標記爲答案! – Johan
這個解決方案的問題是,如果authorName爲空,標題仍然會顯示在第一行,而第二行仍然是空的。那個樣子不好... –
- 1. 的Android 4.2標題欄在操作欄
- 2. 多行導航欄標題
- 3. 操作欄問題
- 4. Android 3.2從操作欄刪除標題
- 5. 更改操作欄標題顏色
- 6. 適配器更新標題操作欄
- 7. 字體加粗在操作欄標題
- 8. FragmentStatePagerAdapter /更新操作欄標題
- 9. Android操作欄標題省略號
- 10. Android的自定義操作欄/標題
- 11. android中的標題/操作欄ID?
- 12. 帶有操作欄但沒有標題的活動?
- 13. UINavigationItem標題執行操作
- 14. Android操作欄,兩行文本標籤
- 15. 自定義操作欄圖標行爲
- 16. Android應用程序全屏幕,沒有標題欄,也沒有操作欄
- 17. 操作欄顏色有問題
- 18. 不使用主題顏色的操作欄標題/圖標
- 19. 帶有標籤的Android操作欄
- 20. 帶有固定標籤的操作欄
- 21. 帶有中心徽標的操作欄
- 22. Android:沒有操作欄的Swipey標籤
- 23. 在操作欄中沒有顯示的菜單標題
- 24. 安卓操作欄問題
- 25. Android的標籤操作欄
- 26. 操作欄圖標邊距
- 27. Android操作欄圖標
- 28. 閃動操作欄圖標
- 29. Android操作欄 - 標籤
- 30. 更改操作欄圖標
感謝您的提示,但我[setCustomView]解決了它(http://developer.android.com/reference/android/app/ActionBar.html#setCustomView(int)的) – benkap