Android工具栏中的自定义图标

问题描述:

我试图使用在支持工具栏中定义自定义图标,但显示的唯一图标是左箭头...我试图在布局和编程中设置它,但结果是相同的。Android工具栏中的自定义图标

这里是我的活动

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar); 
    toolbar.setNavigationIcon(R.drawable.ic_launcher); 
    toolbar.setTitle(""); 
    setSupportActionBar(toolbar); 
} 

而且我的工具栏布局

<android.support.v7.widget.Toolbar 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/my_toolbar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    app:navigationIcon="@drawable/ic_action_bar" 
    android:minHeight="@dimen/action_bar_size" 
    android:background="?attr/colorPrimary" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
    /> 

就尝试过自己和这个问题似乎是,你必须setSupportActionBar(toolbar)之后调用setNavigationIcon。否则,它只会显示你所描述的箭头。
因此,要解决这个问题,只是改变这样的代码:

//... 
Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar); 
setSupportActionBar(toolbar); 
toolbar.setNavigationIcon(R.drawable.ic_launcher); 
toolbar.setTitle(""); 

注:也是一样的设置标题,contentDescription等我不,如果这一个错误,或者如果它打算知道,但它绝对有点奇怪。

+0

你说得对,谢谢:) – Antoine 2014-10-19 11:19:06

+0

我经历过同样的行为。 – 2014-10-22 19:34:12

+8

而不是'toolbar.setTitle(“”);',我更喜欢使用'getSupportActionBar()。setDisplayShowTitleEnabled(false);'。我认为它更清洁。 – eoinzy 2014-12-17 14:55:38

ActionBar.setHomeAsUpIndicator(...); 

这一个适合我。

如果您想要更改菜单图标。 (也许有人会需要它)

  1. 在你的活动

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
        MenuInflater inflater = getMenuInflater(); 
        inflater.inflate(R.menu.menu_info, menu); 
        return true; 
    } 
    
  2. 在水库您的菜单文件夹。 (menu_info.xml)

    <?xml version="1.0" encoding="utf-8"?> 
    <menu xmlns:android="http://schemas.android.com/apk/res/android" 
        xmlns:app="http://schemas.android.com/apk/res-auto"> 
        <item 
         android:id="@+id/menu_info_action" 
         android:icon="@drawable/ic_info_icon" 
         android:title="@string/information" 
         app:showAsAction="ifRoom"/> 
    </menu>