Android ActionBarのアイコンをなくす

Android

Android ActionBarのアイコンをなくす

AndroidのminSDKが11以上で使える話です。
10以下の場合は、AppCompatとか取り込まないとダメなようです。

さて、ActionBarのアイコンをなくしたデザインにしたい!というお話がありました。
具体的には、次のような画像にします。

で、stackOverflowに
action_bar.setDisplayShowHomeEnabled(false);
を使えばイイヨ!と書いてあったので、次のように実装してみました。

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ActionBar action_bar = getActionBar();
        action_bar.setDisplayShowHomeEnabled(false);        
 
    }

いいんだけど…

一瞬アイコンが見えるのがとても残念です…。

仕方ないので、カスタムレイアウトにします。
ActivityのonCreateでactionbarを指定します。

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        ActionBar action_bar = getActionBar();
        
        action_bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
        action_bar.setCustomView(R.layout.actionbar);
 
    }

次のようにlayout/actionbar.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="wrap_content"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:background="@color/navy" >
    
 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="もももも"
    android:textColor="@color/white"
    android:textSize="24sp" />
 
 </LinearLayout>

下記を参考にしました。
http://stackoverflow.com/questions/18418635/how-to-align-title-at-center-of-actionbar-in-default-themetheme-holo-light

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です