使用SerklockActionBar后我们可以很方便的使用它的actionbar的功能。
在使用的过程中,他需要两个条件:
1、需要继承自SherLockActive来获得ActionBar对象
2、程序主题需要使用Theme.ShekLock这个主题。
我们在使用页面的间的传递时现在的一般做法就是会使用样式文件来获取全局动画改变
<!-- animation 样式 -->
<style name="activityAnimation" parent="@android:style/Animation">
<item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>
<item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>
<item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
</style>
然后再将其加到我们的主题文件中:
<style name="MyAppTheme" parent="@android:style/Theme">
<item name="android:windowNoTitle">true</item> <!-- 设置没有标题 -->
<item name="android:textSize">18sp</item> <!-- 设置文本大小 -->
<!-- <item name="android:textColor">#F34141</item> 设置文本颜色 -->
<!-- 设置activity切换动画 -->
<item name="android:windowAnimationStyle">@style/activityAnimation</item>
</style>
<!-- animation 样式 -->
<style name="activityAnimation" parent="@android:style/Animation">
<item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item>
<item name="android:activityOpenExitAnimation">@anim/slide_left_out</item>
<item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item>
<item name="android:activityCloseExitAnimation">@anim/slide_right_out</item>
</style>
但是我们在使用了SherkLock主题后我们会发现,页面之间的切换动画消失了,并且还报错!
究其原因是因为我们的Theme.Sherlock主题中更改了这几项,导致我们的主题失效了。
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
这几项刚好与我们的自定义主题冲突,解决办法也很简单,只需要直接加上我们需要的动画切换效果就好!
如下:
<style name="MyAppTheme" parent="@style/Theme.Sherlock">
<item name="android:textSize">15sp</item> <!-- 设置文本大小 -->
<item name="android:windowAnimationStyle">@style/activityAnimation</item><!-- 设置activity切换动画 -->
</style>
另附动画文件:
从左边滑进:slide_left_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="-100.0%p"
android:toXDelta="0.0" />
</set>
从左边滑出:slide_left_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="0.0"
android:toXDelta="-100.0%p" />
</set>
从右边滑进:slide_right_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="100.0%p"
android:toXDelta="0.0" />
</set>
从右边滑出:slide_right_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="300"
android:fromXDelta="0.0"
android:toXDelta="100.0%p" />
</set>