您的位置:首页 > 其它

自己定义Actionbar

2016-04-14 13:42 309 查看
近期在项目中大量使用actionbar,所以把自己定义的一些属性总结一下。

效果例如以下:



1、自己定义actionbar

在theme的style中设置

<item name="android:actionBarStyle">@style/CustomActionBar</item>


<!-- actionbar样式 -->
<style name="CustomActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">#fb6029</item>
<item name="android:displayOptions">showTitle</item>
<item name="android:titleTextStyle">@style/TitleSytle</item>
</style>


2、自己定义返回button图标

<item name="android:homeAsUpIndicator">@drawable/navbar_back</item>


3、自己定义标题样式

这个须要设置actionbar的属性android:titleTextStyle

<style name="TitleSytle" parent="@android:style/TextAppearance.Large">
<item name="android:textColor">@android:color/white</item>
<item name="android:textSize">19sp</item>
<item name="android:layout_marginLeft">5dp</item>
</style>


4、item字体设置

<item name="android:itemTextAppearance">@style/itemTextStyle</item>


<style name="itemTextStyle">
<item name="android:textColor">@android:color/holo_blue_bright</item>
</style>


5、自己定义overflowbutton图标

<item name="android:actionOverflowButtonStyle">@style/OverflowButtonStyle</item>


<style name="OverflowButtonStyle">
<item name="android:src">@drawable/actionbar_add_icon</item>
</style>


6、设置overflow的item显示文字和图标

menu

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.edittextdemo.MainActivity" >

<item
android:id="@+id/action_add_friend"
android:icon="@drawable/menu_add_icon"
android:title="@string/menu_addfriend"/>
<item
android:id="@+id/action_scan"
android:icon="@drawable/men_scan_icon"
android:title="@string/menu_scan"/>
<item
android:id="@+id/action_feedback"
android:icon="@drawable/menu_feedback_icon"
android:title="@string/menu_feedback"/>

</menu>


还须要重写onMenuOpened方法

@Override
public boolean onMenuOpened(int featureId, Menu menu) {

if (featureId == Window.FEATURE_ACTION_BAR && menu != null)
{
if (menu.getClass().getSimpleName().equals("MenuBuilder"))
{
try
{
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e)
{
e.printStackTrace();
}
}
}

return super.onMenuOpened(featureId, menu);

}


下载源代码:http://download.csdn.net/detail/zhong1113/8765119
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: