15

アクション バーに複数行のタイトルを作成することはできますか? ダブルスペースのタイトルが必要です。

4

4 に答える 4

14

アイコンとタイトルが 1 つのクリック可能な項目である 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);
}
于 2013-05-02T16:52:33.620 に答える
9

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"
    style="@style/TextAppearance.AppCompat.Title"
    android:layout_height="match_parent"
    android:layout_width="wrap_content"
    android:gravity="center_vertical"
    android:ellipsize="end"
    android:maxLines="2"/>

</LinearLayout>

次に、これを ActionBar のカスタム レイアウトとして設定します。

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.");
于 2013-02-14T21:02:21.423 に答える
0

android:logoいいえ。ただし、アイコンを別のロゴ グラフィック (と)に置き換えることはできますsetDisplayUseLogoEnabled()。2 行のタイトルをロゴ グラフィックの一部として埋め込み、元のタイトル文字列をsetDisplayShowTitleEnabled(). 私の知る限り、その組み合わせは機能するはずです。

于 2012-06-29T11:05:32.810 に答える