左侧更改工具栏默认图标

时间:2015-12-15 15:10:11

标签: java android xml android-toolbar

我目前在顶部使用工具栏,想要用主页按钮替换默认的后退按钮。但是当我添加项目时,它总是添加到右边。我没有看到任何layout_gravity选项可供选择。有没有办法做到这一点?

MainActivity

Toolbar toolbar;

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

    toolbar = (Toolbar)findViewById(R.id.app_bar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle("                Testing");
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.home_icon_empty, menu);
    return true;
}

home_icon_empty.xml

<item
    android:id="@+id/homepage"
    android:orderInCategory="100"
    android:title="HOME"
    android:icon="@drawable/home_icon"
    app:showAsAction="always"
    />

<item
    android:id="@+id/homepage1"
    android:orderInCategory="200"
    android:title="HOME"
    android:icon="@drawable/home_icon"
    app:showAsAction="always"
    />

activity_main.xml中

<include
        android:id="@+id/app_bar"
        layout="@layout/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

app_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary">

</android.support.v7.widget.Toolbar>

当前工具栏输出:

enter image description here

预期的工具栏输出:

enter image description here

新编辑后的图片:

enter image description here

3 个答案:

答案 0 :(得分:9)

设为NavigationIcon:

Drawable drawable = ContextCompat.getDrawable(context, R.drawable.your_drawable)
toolbar.setNavigationIcon(drawable);
setSupportActionBar(toolbar);

答案 1 :(得分:1)

试试这个

toolbar.setNavigationIcon(R.drawable.your_icon);

在设置支持操作栏之前使用它。 不要叫这个

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

或至少做

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

试一试。其中一些可行。

答案 2 :(得分:0)

您还可以:

mToolbar.setLogo( yourLogoID );

或者您可以:

mToolbar.setBackground( ContextCompat.getDrawable( yourContext, urBackgroundID );

其中

mToolbar = yourToolbar;
mToolbar = findViewById(R.id.your_toolbar);
// or, if your toolbar get setted by a superclass
mToolbar = (Toolbar) getSupportActionBar();

您的样式应为:Blablabla.NoActionBar 然后在xml布局中添加您的工具栏

如果您在单击“向左滑动”或“主页”按钮时使用抽屉显示左菜单,则应使用上述方法之一(如果您不想超类所有DrawerLayout lul)

bb