[英]FadingActionBar error in Android appcompat v7 21 library
我今天第一次尝试对v7 21库进行appcompat。
另外,我在我的应用程序中使用FadingActionBar库。 链接到库https://github.com/ManuelPeinado/FadingActionBar
在我习惯对v7 21库进行appcompat之前,App一直运行良好。 但是现在我得到了这个错误。
Caused by: java.lang.NullPointerException
at com.manuelpeinado.fadingactionbar.FadingActionBarHelper.setActionBarBackgroundDrawable(FadingActionBarHelper.java:48)
at com.manuelpeinado.fadingactionbar.FadingActionBarHelperBase.initActionBar(FadingActionBarHelperBase.java:173)
at com.manuelpeinado.fadingactionbar.FadingActionBarHelper.initActionBar(FadingActionBarHelper.java:31)
at olkunmustafa.example.parallax.medyasef.com.parallaxanimationexample.MyActivity.onCreate(MyActivity.java:23)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$800(ActivityThread.java:135)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method)
如果我将appcompat从v21更改为v20,则所有内容均已修复。 但是我想使用v21。
这是我的价值观/ style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowActionBarOverlay">true</item>
</style>
</resources>
MyActivity.java
public class MyActivity extends ActionBarActivity {
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
FadingActionBarHelper helper = new FadingActionBarHelper()
.actionBarBackground( R.color.green_ms )
.headerLayout( R.layout.header )
.contentLayout( R.layout.activity_my );
setContentView( helper.createView( this ) );
helper.initActionBar( this );
}
}
的build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.0.1"
defaultConfig {
applicationId "olkunmustafa.example.parallax.medyasef.com.parallaxanimationexample"
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.+'
compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar:3.1.2'
}
对不起英语不好。 谢谢你的帮助
该库与新的AppCompat不兼容。 一个问题已在其Github页面上打开: Fading ActionBar Issues 。 开发人员已经意识到了这个问题,但与此同时,他发布了要点,在这里展示了如何使用新的Toolbar
小部件来实现这种效果: 工具栏衰落效果
奇怪的是,我正在使用fadingactionbar库,它与appcompat v7 21库一起很好地工作。 这是我的作品
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "23.0.0 rc3"
defaultConfig {
applicationId "com.test.aprido.testfadedactionbar"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.+'
compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar:3.1.2'
}
amd这是我的res / value / style.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/Widget.ActionBar</item>
</style>
<style name="AppTheme.TranslucentActionBar">
<item name="android:actionBarStyle">@style/Widget.ActionBar.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="AppTheme.Light.TranslucentActionBar" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/Widget.Light.ActionBar.Transparent</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
<style name="Widget" />
<style name="Widget.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse" />
<style name="Widget.Light" />
<style name="Widget.Light.ActionBar" parent="@android:style/Widget.Holo.Light.ActionBar.Solid" />
<style name="Widget.ActionBar.Transparent">
<item name="android:background">@android:color/transparent</item>
</style>
<style name="Widget.Light.ActionBar.Transparent">
<item name="android:background">@android:color/transparent</item>
</style>
</resources>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.