1

タイトルをトップバーの中央に配置するために、次のように ActionBarSherlock のカスタム ビューを設定しました。

ab.setDisplayShowCustomEnabled(true);

ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
ab.setCustomView(R.layout.topbar);

私のカスタムビュー:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:padding="5dp"
    android:background="#00ff00"
    >
    <ImageView 
        android:id="@+id/sideMenuButton"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:src="@drawable/icon_menu"
        />
    <ImageView 
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:src="@drawable/logo"
        />

</RelativeLayout>

そして、これは機能します - メニューボタン (右側のボタン) が表示されるまでは。

彼らは膨らんでいます:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main_menu, menu);
    //...
}

アイテム:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_share"
        android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"
        android:icon="@drawable/icon_foo"
        android:showAsAction="always"
        android:title="@string/foo"
        android:visible="false"/>

//...
</menu>

トップバーのレイアウト全体を取得するにはどうすればよいですか?「中央」と言うと、利用可能なすべての幅で実際に中央に配置されますか? 中央のロゴとメニュー項目は固定サイズの画像なので、重なる可能性の問題はありません。

画面の幅を測定して左マージンを動的に設定することもできますが、これにはもっと良い解決策があることを願っています。

前もって感謝します。

4

0 に答える 0