问题
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.
回答1:
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.
来源:https://stackoverflow.com/questions/9265927/how-to-remove-the-margin-between-the-app-icon-and-the-edge-of-the-screen-on-the