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等我不,如果这一个错误,或者如果它打算知道,但它绝对有点奇怪。
答
ActionBar.setHomeAsUpIndicator(...);
这一个适合我。
答
如果您想要更改菜单图标。 (也许有人会需要它)
-
在你的活动
@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu_info, menu); return true; }
-
在水库您的菜单文件夹。 (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>
你说得对,谢谢:) – Antoine 2014-10-19 11:19:06
我经历过同样的行为。 – 2014-10-22 19:34:12
而不是'toolbar.setTitle(“”);',我更喜欢使用'getSupportActionBar()。setDisplayShowTitleEnabled(false);'。我认为它更清洁。 – eoinzy 2014-12-17 14:55:38