首先 Android系统在兼容方面做得还挺好的 你可以支持Android2.1以上的设备 也可以支持Android3.0以上的设备使用actionBar
3.0以上:让你的Activity有一个style:Theme.Holo
这个style到底怎么用呢?你可以继承它 然后改写里面的参数
2.1以上:那就要麻烦一点了,
继承ActionBarActivity
public class MainActivity extends ActionBarActivity { ... }
然后style就要用这个了:
<activity android:theme="@style/Theme.AppCompat.Light" ... >
如何使用ActionBar很简单了 编写menu.xml 然后在上面写你的menu
@Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu items for use in the action bar MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main_activity_actions, menu); return super.onCreateOptionsMenu(menu); }
然后在哪里添加点击事件呢
onOptionsItemSelected
其实你也是可以添加一个返回的action给actionBar
那你得分两步了
一步是在Activity的配置文件声明
android:parentActivityName="com.example.myfirstapp.MainActivity"
就是声明上一个页面是什么鬼
然后再onCreate里面声明
getSupportActionBar().setDisplayHomeAsUpEnabled(true); // If your minSdkVersion is 11 or higher, instead use: // getActionBar().setDisplayHomeAsUpEnabled(true);
那么这样就很完美的解决问题了
其实我觉得嘛 最重要的还是改变actionBar的背景 因为系统的ActionBar 我并没有觉得好看 你觉得呢
另外 Google公司为了支持2.1 和 3.0以上的设备又设置了两套style和theme
theme.AppCompat:2.1以上
theme.Holo:3.0以上
首先黑暗主题:
Theme.Holo
for a "dark" theme.Theme.Holo.Light
for a "light" theme.
Theme.Holo.Light.DarkActionBar 这个就是ActionBar是黑色的 而内容是白色的
support library 里面的是:
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.
1.改变ActionBar的样式
可以通过改变background 如果你用了s navigation tabsor the splitaction bar,
你复写的方法又不一样了:如下backgroundStacked
andbackgroundSplit
在xml书写的时候的区别是:
<item name="android:actionBarStyle">@style/MyActionBar</item> <!-- Support library compatibility --> <item name="actionBarStyle">@style/MyActionBar</item>
这个区别还是挺好区别的吧 一个有Android 一个没有Android
titleTextStyle:顾名思义 标题的文本样式
<item name="android:actionBarStyle">@style/MyActionBar</item> <item name="android:actionBarTabTextStyle">@style/MyActionBarTabText</item> <item name="android:actionMenuTextColor">@color/actionbar_text</item>