对于ActionBar,谷歌文档介绍了2种写法,其中2.1是带v7包。
对于3.0(使用系统自带的主题) ---带应用的icon
If you've created a custom theme, be sure it uses one of the Theme.Holo
themes
as its parent.
android:theme="@android:style/Theme.Holo"
对于2.1带v7包(使用v7包里的主题) ---不带应用的icon
第1:Activity要继承自ActionBarActivity
第2:Activity的主题必须是AppCompat
<activity android:theme="@style/Theme.AppCompat.Light" ... >
public class MainActivity extends ActionBarActivity { ... }
千万要注意的问题:AppCompatActivity必须与AppCompat的主题配合使用,不能混搭。
>>>>对于使用了支持库的,有一个问题需要注意一下:
只有AppComatActivity才有showAsAction这个属性,Activity只有菜单,并不会将菜单里的条目做
成Action。
If your app is using the Support Library for compatibility on versions as low as Android 2.1, the showAsAction
attribute is not available from the android:
namespace. Instead this attribute is provided by the Support Library and you must define your own XML namespace and use that namespace as the attribute prefix. (A custom XML namespace should be based on your app name, but it can be any name you want and is only accessible within the scope of the file in which you declare it.) For example:
res/menu/main_activity_actions.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom" />
...
</menu>
>>>>为Activity增加返回按钮:
方式1:隐式的进行绑定
先配置Activity,包括它的父Activity(也就是它返回跳转到的那个Activity)
<!-- A child of the main activity -->
<activity
android:name=".Activity2"
android:label="@string/title_activity_display_message"
android:parentActivityName=".MainActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
然后
(Bundle savedInstanceState) { .onCreate(savedInstanceState)setContentView(R.layout.)getSupportActionBar().setDisplayHomeAsUpEnabled()}
》》Styling the Action Bar(做出有风格的ActionBar)
1.Use an Android Theme
###不使用支持库的情况
-
-
Theme.Holo
for a "dark" theme. 工具栏和主面板都是黑色主题(API11) -
Theme.Holo.Light
for a "light" theme. 工具栏和主面板都是白色主题 (API11) -
Theme.Holo.Light.DarkActionBar 工具栏为黑色,主面板为白色(API14
When using the Support Library, you must instead use the
Theme.AppCompat
themes: -
Theme.AppCompat
for the "dark" theme. -
Theme.AppCompat.Light
for the "light" theme. -
Theme.AppCompat.Light.DarkActionBar
for the light theme with a dark action bar
-
2.Customize the Background
3.Customize the Text Color
4.Customize the Tab Indicator
上面的我也没有写,具体请看谷歌文档Develop-Training-Adding Action Bar-Styling the ActionBar
>>Overlaying the Action Bar(使ActionBar堆叠在主面板之上)
这样做的好处:一旦ActionBar hide或者show的时候,不会引起主界面的重绘,效率高。
需要考虑的一个问题:主面板要设置个margin,不让ActionBar遮盖住主界面。
android:paddingTop="?android:attr/actionBarSize"
本文转自屠夫章哥 51CTO博客,原文链接:http://blog.51cto.com/4259297/1715680,如需转载请自行联系原作者