用自定义布局覆盖ActionBar
问题描述:
我试图自定义ActionBar以显示徽标。我第一次尝试做这样用自定义布局覆盖ActionBar
actionBar.setIcon(R.drawable.logo);
但我需要这是一个大一点,所以我试图创建一个自定义布局和膨胀它在默认的动作条。
我收获了几个教程,几乎所有匹配在相同的过程。所以,我去与它:
custom_actionbar.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ablogo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:src="@drawable/logo" />
</RelativeLayout>
MainActivity.java - > onCreate()方法
actionBar = getSupportActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
/*Inflate your custom actionBar layout*/
View customActionBar = getLayoutInflater().inflate(R.layout.custom_actionbar, null);
actionBar.setCustomView(customActionBar);
但我意识到,自定义动作条布局没有填充整个操作栏。应该在左侧的徽标图像位于操作栏的中间,即使默认图标和标题未显示,操作栏也不会触及它们的空间。
那么,应该如何正确的方式来覆盖操作栏,并能够在左侧设置我的标志图像?
答
//write to this
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setCustomView(R.layout.custom_actionbar);
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="8dp"
android:src="@drawable/nav" />
既不是这样,我得到它 – masmic 2014-09-24 13:23:37
自定义操作栏不显示上面的代码。 – 2014-09-24 13:34:20