3

SherlockFragmentActivity を拡張するアクティビティには、アクション バーがあり、actionBar.setDisplayHomeAsUpEnabled(true) を設定して以前のアクティビティに戻ります。すべて正常に動作します。しかし、ホームボタンをクリックすると、背景色はアプリアイコンにのみ適用されますが、スクリーンショットに示すようにアクションバーの「タイトル」にも適用されます。私はこれが起こることを望んでいません。ホームボタンをクリックすると、タイトルではなく、アプリアイコンのみがクリックできるようになります(背景色はアプリアイコンにのみ適用する必要があります)。どうすればこれを行うことができますか?

ここに画像の説明を入力

私の活動コード:

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setTitle(some_string);
4

2 に答える 2

16

このホームボタンはMENUボタンでもあるので忘れずに。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            // This is called when the Home (Up) button is pressed in the action bar.
            // Create a simple intent that starts the hierarchical parent activity and
            // use NavUtils in the Support Package to ensure proper handling of Up.
            Intent upIntent = new Intent(this, MainActivity.class);
            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                // This activity is not part of the application's task, so create a new task
                // with a synthesized back stack.
                TaskStackBuilder.from(this)
                        // If there are ancestor activities, they should be added here.
                        .addNextIntent(upIntent)
                        .startActivities();
                finish();
            } else {
                // This activity is part of the application's task, so simply
                // navigate up to the hierarchical parent activity.
                NavUtils.navigateUpTo(this, upIntent);
            }
            return true;
    }
    return super.onOptionsItemSelected(item);
}
于 2013-09-04T02:48:01.897 に答える
1

標準の Android UI パターンは、押された状態のタイトルを含めることです。ただし、このリンク(アクションバーの左側にカスタムビューを追加する方法を説明)に従った場合、アクションバーの項目を左に揃えるにはどうすればよいですか? 、タイトルを空に設定します。以下のコードは私のローカルデバイスで動作しました

ActionBar action=getActionBar();
action.setDisplayShowCustomEnabled(true);
action.setHomeButtonEnabled(true);
action.setDisplayShowTitleEnabled(false);
TextView title =new TextView(getApplicationContext());
title.setText("Your Title here");
title.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
action.setCustomView(title);
于 2013-03-02T16:09:32.913 に答える