Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change ToolBar default icon on the left

I am using a ToolBar at the top at present and want to replace the default back button with a home button. But when I add item, it always adds to the right. I don't see any layout_gravity options to choose either. Is there a way to do this?

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>

Current Toolbar output:

enter image description here

Expected Toolbar output:

enter image description here

Image after new edit:

enter image description here

like image 509
cubeb Avatar asked Dec 15 '15 15:12

cubeb


People also ask

How do I change the icon back on my toolbar Android?

We can easily Customize the Back Button by using the getSupportActionBar() library and setting the drawable file using setHomeAsUpIndicator in the java/kotlin file. actionBar. setHomeAsUpIndicator(R. drawable.

How do I change the navigation icon color on my Android toolbar?

xml file: Just go to res/values/styles. xml file. edit the xml file to change the color of action bar.


3 Answers

Set as NavigationIcon:

Drawable drawable = ContextCompat.getDrawable(context, R.drawable.your_drawable)
toolbar.setNavigationIcon(drawable);
setSupportActionBar(toolbar);
like image 104
Deividi Cavarzan Avatar answered Oct 02 '22 20:10

Deividi Cavarzan


Try this

toolbar.setNavigationIcon(R.drawable.your_icon);

Use it before setting support action bar. And don't call this

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

Or at least do

getSupportActionBar().setDisplayHomeAsUpEnabled(false);

Try it out. Some of this will work.

like image 1
RexSplode Avatar answered Oct 03 '22 20:10

RexSplode


You can also:

mToolbar.setLogo( yourLogoID );

or you can:

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

where

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

your style should be: Blablabla.NoActionBar then in xml layout include your toolbar

If you are using a Drawer to show left Menu when Left Swiped or Home Button Clicked then you should use one of above methods (If you don't want to superclass all DrawerLayout lul)

bb

like image 1
Z3R0 Avatar answered Oct 02 '22 20:10

Z3R0