2014-09-24 115 views
0

我试图自定义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); 

但我意识到,自定义动作条布局没有填充整个操作栏。应该在左侧的徽标图像位于操作栏的中间,即使默认图标和标题未显示,操作栏也不会触及它们的空间。

那么,应该如何正确的方式来覆盖操作栏,并能够在左侧设置我的标志图像?

回答

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" /> 
+0

既不是这样,我得到它 – masmic 2014-09-24 13:23:37

+0

自定义操作栏不显示上面的代码。 – 2014-09-24 13:34:20