我正在尝试自定义ActionBar以显示徽标。我首先尝试这样做
actionBar.setIcon(R.drawable.logo);
但是我需要这个更大一些,所以我试图创建一个自定义布局并在默认的actionBar上进行膨胀。
我已经阅读了几个教程,几乎所有教程都在同一个程序中进行了匹配。所以我继续说下去:
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 - &gt; 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);
但我意识到自定义操作栏布局没有填满整个操作栏。应该位于左侧的徽标图像位于操作栏的中间,即使未显示默认图标和标题,操作栏仍然无法触及它们的空间。
那么,如何以正确的方式覆盖操作栏并能够在其左侧设置我的徽标图像?
答案 0 :(得分:0)
//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" />