Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove the margin between the app icon and the edge of the screen on the ActionBar?

I have a custom home icon for my app and I want it to align all the way to the left of the actionbar, so that it's touching the edge of the screen. Is this possible, and if so, how can it be done? I don't see anything that sets the padding or margin to make it align all the way to the left.

like image 318
CACuzcatlan Avatar asked Feb 13 '12 18:02

CACuzcatlan


1 Answers

I finally managed to get this. You need to use a custom actionbar view. It's actually quite easy:

(This is using ActionbarSherlock, it should work with the stock compat library also...)

  • First in your res/values/themes.xml, set the actionbar display options to "custom":

    <item name="android:displayOptions">showCustom</item>
    
  • Then create a file called res/layout/actionbar_layout.xml and place in it something like:

    <ImageView
        android:id="@+id/home_icon"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginBottom="5dp"
        android:scaleType="centerCrop"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent" />
    
    <!-- Add textviews or whatever you like here to replicate the actionbar
         title etc. -->
    

  • Next, in your activity code add the following:

    View mActionCustomView = getSherlockActivity().getLayoutInflater()
        .inflate(R.layout.actionbar_layout, null);
    getSherlockActivity().getSupportActionBar().setCustomView(
            mActionCustomView);
    
    ImageView homeIcon = (ImageView)mActionCustomView
        .findViewById(R.id.home_icon);
    int abHeight = getSherlockActivity().getSupportActionBar()
        .getHeight();
    homeIcon.setLayoutParams(new RelativeLayout.LayoutParams(
                abHeight, abHeight));
    

That's basically it! Let me know if there's anything I left out. There are some nice benefits of having a customisable actionbar view, just stick to the basics and it will look great.

enter image description here

like image 173
brk3 Avatar answered Oct 11 '22 15:10

brk3