How to align items in action bar to the left?

2019-01-18 07:21发布

问题:

I have an actionbar with a searchview but I'd like to align it to the left such as in the maps app as opposed to the right. How would I do this?

回答1:

You can do this Try this it would definetly help:

ActionBar action=getActionBar();
action.setDisplayShowCustomEnabled(true);
action.setDisplayShowHomeEnabled(false);
action.setDisplayShowTitleEnabled(false);
RelativeLayout relative=new RelativeLayout(getApplicationContext());
relative.addView(new SearchView(getApplicationContext()));
action.setCustomView(relative);

Do not forget to add layout params to your searchview so that it may align on right to relative. Do let me know if any issue got. Thank You

it would be then shown on right of action bar. Also



回答2:

Don't work with getApplicationContext() , i found an issue

    RelativeLayout relative = new RelativeLayout(mActionBar.getThemedContext());
    mSearchView = new SearchView(mActionBar.getThemedContext());
    mSearchView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
    mSearchView.setIconifiedByDefault(false);
    mSearchView.setGravity(Gravity.LEFT);
    relative.addView(mSearchView);
    mActionBar.setDisplayShowCustomEnabled(true);
    mActionBar.setCustomView(relative);