为了将标题集中在我的topbar中,我为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>
如何获得顶部栏的整个布局 - 如果我说“中心”,它真的以所有可用宽度为中心?我没有可能重叠的问题,因为居中的徽标和菜单项是固定大小的图像。
我还可以测量屏幕的宽度并动态设置左边距,但我希望有更好的解决方案。
提前致谢。