我的Andr​​oid工作室项目工程精细的棒棒糖,但崩溃而奇巧设备测试 [英] My android studio project works finely on lollipop but crashes while testing on kitkat devices

查看:154
本文介绍了我的Andr​​oid工作室项目工程精细的棒棒糖,但崩溃而奇巧设备测试的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的Andr​​oid工作室项目工程精细的棒棒糖,但崩溃而奇巧的设备测试。它有一个材料视图寻呼机和同时打开的活动,有鉴于材料寻呼机应用只是强制关闭奇巧设备上。

  E / AndroidRuntime:致命异常:主要
                                                                          工艺:com.production.iedc.helo,PID:12711
                                                                          了java.lang.RuntimeException:无法启动活动ComponentInfo {com.production.iedc.helo / com.production.iedc.helo.MainActivity}:java.lang.IllegalStateException:您需要使用Theme.AppCompat主题(或后代)这一活动。
                                                                              在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338)
                                                                              在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
                                                                              在android.app.ActivityThread.access $ 800(ActivityThread.java:151)
                                                                              在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1321)
                                                                              在android.os.Handler.dispatchMessage(Handler.java:110)
                                                                              在android.os.Looper.loop(Looper.java:193)
                                                                              在android.app.ActivityThread.main(ActivityThread.java:5292)
                                                                              在java.lang.reflect.Method.invokeNative(本机方法)
                                                                              在java.lang.reflect.Method.invoke(Method.java:515)
                                                                              在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:824)
                                                                              在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
                                                                              在dalvik.system.NativeStart.main(本机方法)
                                                                           java.lang.IllegalStateException:引起你需要使用一个Theme.AppCompat主题(或后代)与本次活动。
                                                                              在android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)
                                                                              在android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
                                                                              在android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
                                                                              在android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                                              在com.production.iedc.helo.MainActivity.onCreate(MainActivity.java:80)
                                                                              在android.app.Activity.performCreate(Activity.java:5264)
                                                                              在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
                                                                              在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
                                                                              在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
                                                                              在android.app.ActivityThread.access $ 800(ActivityThread.java:151)
                                                                              在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1321)
                                                                              在android.os.Handler.dispatchMessage(Handler.java:110)
                                                                              在android.os.Looper.loop(Looper.java:193)
                                                                              在android.app.ActivityThread.main(ActivityThread.java:5292)
                                                                              在java.lang.reflect.Method.invokeNative(本机方法)
                                                                              在java.lang.reflect.Method.invoke(Method.java:515)
                                                                              在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:824)
                                                                              在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
                                                                              在dalvik.system.NativeStart.main(本机方法)   的build.gradle 应用插件:'com.android.application    安卓{
        compileSdkVersion 23
        buildToolsVersion23.0.2        defaultConfig {
            的applicationIDcom.production.iedc.helo
            14的minSdkVersion
            targetSdkVersion 23
            版本code 1
            的versionName1.0
            multiDexEnabled真
        }
        buildTypes {
            发布 {
                minifyEnabled假
                proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard-rules.pro
            }
        }
    }    依赖{
        编译文件树(导演:'库',包括:['的* .jar'])
        testCompile'的JUnit:JUnit的:4.12
        编译com.android.support:appcompat-v7:23.1.1
        编译com.android.support:design:23.1.1
        编译('com.github.florent37:materialviewpager:1.0.8@aar'){
            传递=真        }
        编译com.squareup.picasso:毕加索:2.3.3
        编译com.github.paolorotolo:appintro:3.4.0
        编译com.android.support:multidex:1.0.0
    }主要活动包com.production.iedc.helo;
进口android.animation.Animator;
进口android.animation.AnimatorListenerAdapter;
进口android.animation.AnimatorSet;
进口android.animation.ObjectAnimator;
进口android.content.Intent;
进口android.content.Shared preferences;
进口android.graphics.Color;
进口android.graphics.drawable.Drawable;
进口android.graphics.drawable.GradientDrawable;
进口android.media.Image;
。进口的Andr​​oid preference preferenceManager。
进口android.support.v4.app.Fragment;
进口android.support.v4.app.FragmentStatePagerAdapter;
进口android.support.v4.widget.DrawerLayout;
进口android.support.v7.app.ActionBar;
进口android.support.v7.app.ActionBarActivity;
进口android.os.Bundle;
进口android.support.v7.app.ActionBarDrawerToggle;
进口android.view.Menu;
进口android.view.MenuItem;
进口android.view.View;
进口android.view.ViewGroup;
进口android.widget.ImageView;
进口android.widget.Toolbar;进口com.github.florent37.materialviewpager.MaterialViewPager;
进口com.squareup.picasso.Picasso;
公共类MainActivity扩展ActionBarActivity {    MaterialViewPager materialViewPager;
    查看headerLogo;
    ImageView的headerLogoContent;
    DrawerLayout mDrawer;
    ActionBarDrawerToggle mDrawerToggle;
    android.support.v7.widget.Toolbar工具栏;
    @覆盖
    保护无效的onCreate(捆绑savedInstanceState){
        //声明一个新的线程做了preference检查
        线程t =新主题(新的Runnable(){
            @覆盖
            公共无效的run(){
                //初始化共享preferences
                共享preferences的get preFS = preferenceManager
                        .getDefaultShared preferences(getBaseContext());                //创建一个新的布尔和preference并将其设置为true
                布尔isFirstStart = GET prefs.getBoolean(firstStart,真正的);                //如果活动从未开始......
                如果(isFirstStart){                    //启动应用介绍
                    意图I =新意图(MainActivity.this,DefaultIntro.class);
                    startActivity(ⅰ);                    //创建一个新的preferences编辑器
                    共享preferences.Editor E = GET prefs.edit();                    //编辑preference使其false,因为我们不希望这种情况再次运行
                    e.putBoolean(firstStart,FALSE);                    // 应用更改
                    e.apply();
                }
            }
        });
        //开始线程
        t.start();        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_main);
        // 4 onglets
        最终诠释tabCount = 4;        //莱VUESdéfinies丹斯@布局/ header_logo
        headerLogo = findViewById(R.id.headerLogo);
        headerLogoContent =(ImageView的)findViewById(R.id.headerLogoContent);        //乐MaterialViewPager
        this.materialViewPager =(MaterialViewPager)findViewById(R.id.materialViewPager);
        工具栏= materialViewPager.getToolbar();
        mDrawer =(DrawerLayout)findViewById(R.id.drawer_layout);
        如果(工具栏!= NULL){
            setSupportActionBar(工具栏);
            最后的动作条动作条= getSupportActionBar();
            如果(动作条!= NULL){
                actionBar.setDisplayHomeAsUpEnabled(真);
                actionBar.setDisplayShowHomeEnabled(真);
                actionBar.setDisplayShowTitleEnabled(真);
                actionBar.setDisplayUseLogoEnabled(假);
                actionBar.setHomeButtonEnabled(真);
            }
        }
        mDrawerToggle =新ActionBarDrawerToggle(在此,mDrawer,0,0);
        mDrawer.setDrawerListener(mDrawerToggle);
        materialViewPager.getViewPager()。setAdapter(新FragmentStatePagerAdapter(getSupportFragmentManager()){
            @覆盖
            公共片段的getItem(INT位置){
                //济科锐倒chaque onglet联合国RecyclerViewFragment
                返回RecyclerViewFragment.newInstance();
            }                @覆盖
                公众诠释的getCount(){
                    返回4;
                }                //勒蒂特尔àafficher倒chaque页
                @覆盖
                公共CharSequence的getPageTitle(INT位置){
                    开关(位置%4){
                        情况下0:
                            返回学术;
                        情况1:
                            重返新闻联播
                        案例2:
                            返回事件;
                        案例3:
                            返回MISC;
                        默认:
                            返回页面+位置;
                    }                }                INT oldItemPosition = -1;
                @覆盖
                公共无效setPrimaryItem(ViewGroup中的容器,INT位置,Object对象){
                    super.setPrimaryItem(集装箱,位置,对象);                    // seulement SI拉页ESTdifférente
                    如果(oldItemPosition!=位置){
                        oldItemPosition =位置;                        //définir拉新式COULEUR等新生力量莱图像
                       可绘制图片网址= NULL;
                        INT颜色= Color.BLACK;
                        可绘制newDrawable = NULL;
                        开关(位置){
                            情况下0:
                                图片网址= getResources()getDrawable(R.drawable.academics)。
                                颜色= getResources()的getColor(R.color.cyan)。
                                newDrawable = getResources()getDrawable(R.drawable.earth)。
                                打破;
                            情况1:
                                图片网址= getResources()getDrawable(R.drawable.newsfeeds)。
                                颜色= getResources()的getColor(R.color.red)。
                                newDrawable = getResources()getDrawable(R.drawable.tennis)。
                                打破;
                            案例2:
                                图片网址= getResources()getDrawable(R.drawable.events)。
                                颜色= getResources()的getColor(R.color.green)。
                                newDrawable = getResources()getDrawable(R.drawable.evennt)。
                                打破;
                            案例3:
                                图片网址= getResources()getDrawable(R.drawable.misc)。
                                颜色= getResources()的getColor(R.color.lime)。
                                newDrawable = getResources()getDrawable(R.drawable.light)。
                                打破;
                        }                        // PUIS修改莱图像/ COULEURS
                        INT fadeDuration = 400;
                        materialViewPager.setColor(颜色,fadeDuration);
                        materialViewPager.setImageDrawable(图片网址,fadeDuration);
                        toggleLogo(newDrawable,颜色,fadeDuration);                    }
                }
            });            //柏美太子港viewPager德加德纳4页EN备忘录(A NE PAS utiliser河畔加上去4页!)
            this.materialViewPager.getViewPager()setOffscreenPageLimit(tabCount)。
            // relie LES的标签太子港viewpager
            。this.materialViewPager.getPagerTitleStrip()setViewPager(this.materialViewPager.getViewPager());
        }    私人无效toggleLogo(最终可绘制newLogo,最终诠释newColor,诠释时间){        //动画德disparition
        最后AnimatorSet animatorSetDisappear =新AnimatorSet();
        animatorSetDisappear.setDuration(持续时间);
        animatorSetDisappear.playTogether(
                ObjectAnimator.ofFloat(headerLogo的scaleX,0),
                ObjectAnimator.ofFloat(headerLogo的scaleY,0)
        );        //动画D'幽灵
        最后AnimatorSet animatorSetAppear =新AnimatorSet();
        animatorSetAppear.setDuration(持续时间);
        animatorSetAppear.playTogether(
                ObjectAnimator.ofFloat(headerLogo的scaleX,1),
                ObjectAnimator.ofFloat(headerLogo的scaleY,1)
        );        //滑雪后拉disparition
        animatorSetDisappear.addListener(新AnimatorListenerAdapter(){
            @覆盖
            公共无效onAnimationEnd(动画动画){
                super.onAnimationEnd(动画);                // modifie拉COULEUR杜色格拉
                ((GradientDrawable)headerLogo.getBackground())的setColor(newColor)。                // modifie L'图像contenue丹斯乐色格拉
                headerLogoContent.setImageDrawable(newLogo);                //démarreL'动画D'幽灵
                animatorSetAppear.start();
            }
        });        //démarreL'动画德disparition
        animatorSetDisappear.start();
    }
    @覆盖
    保护无效onPostCreate(捆绑savedInstanceState){
        super.onPostCreate(savedInstanceState);
        mDrawerToggle.syncState();
    }    @覆盖
    公共布尔onOptionsItemSelected(菜单项项){
        返回mDrawerToggle.onOptionsItemSelected(项目)||
                super.onOptionsItemSelected(项目);
    }}Activitylayout.xml    < XML版本=1.0编码=UTF-8&GT?;
< android.support.v4.widget.DrawerLayout的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    的xmlns:程序=htt​​p://schemas.android.com/apk/res-auto
    机器人:ID =@ + ID / drawer_layout
    机器人:layout_width =match_parent
    机器人:layout_height =match_parent>    < com.github.florent37.materialviewpager.MaterialViewPager
        机器人:ID =@ + ID / materialViewPager
        机器人:layout_width =match_parent
        机器人:layout_height =match_parent
        应用:viewpager_logo =@布局/ header_logo
        应用:viewpager_pagerTitleStrip =@布局/ material_view_pager_pagertitlestrip_newstand
        应用:viewpager_logoMarginTop =100dp
        应用:viewpager_color =@彩色/ colorPrimary
        应用:viewpager_headerHeight =200dp
        应用:viewpager_headerAlpha =0.6
        应用:viewpager_hideLogoWithFade =假
        应用:viewpager_hideToolbarAndTitle =真
        应用:viewpager_enableToolbarElevation =真
        应用:viewpager_parallaxHeaderFactor =1.5
        应用:viewpager_headerAdditionalHeight =20dp
        应用:viewpager_displayToolbarWhenSwipe =真
       应用:viewpager_transparentToolbar =真
        应用:viewpager_animatedHeaderImage =真        />    <包括布局=@布局/抽屉/>< /android.support.v4.widget.DrawerLayout>


解决方案

您应该改变的java使用继承

ActionBarActivity

活动

和退出对话框主题在清单中,因为它是。我想你不会有问题。

My android studio project works finely on lollipop but crashes while testing on kitkat devices. it has a material view pager and while opening activity that has material view pager the app just force close on kit kat device.

    E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.production.iedc.helo, PID: 12711
                                                                          java.lang.RuntimeException: Unable to start activity ComponentInfo{com.production.iedc.helo/com.production.iedc.helo.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:151)
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:110)
                                                                              at android.os.Looper.loop(Looper.java:193)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5292)
                                                                              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:824)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
                                                                              at dalvik.system.NativeStart.main(Native Method)
                                                                           Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:310)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:279)
                                                                              at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:253)
                                                                              at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                                              at com.production.iedc.helo.MainActivity.onCreate(MainActivity.java:80)
                                                                              at android.app.Activity.performCreate(Activity.java:5264)
                                                                              at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
                                                                              at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
                                                                              at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390) 
                                                                              at android.app.ActivityThread.access$800(ActivityThread.java:151) 
                                                                              at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:110) 
                                                                              at android.os.Looper.loop(Looper.java:193) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5292) 
                                                                              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:824) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640) 
                                                                              at dalvik.system.NativeStart.main(Native Method) 

   Build.gradle

 apply plugin: 'com.android.application'

    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.2"

        defaultConfig {
            applicationId "com.production.iedc.helo"
            minSdkVersion 14
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.1.1'
        compile 'com.android.support:design:23.1.1'
        compile ('com.github.florent37:materialviewpager:1.0.8@aar'){
            transitive=true

        }
        compile 'com.squareup.picasso:picasso:2.3.3'
        compile 'com.github.paolorotolo:appintro:3.4.0'
        compile 'com.android.support:multidex:1.0.0'
    }

Main activity

package com.production.iedc.helo;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.media.Image;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toolbar;

import com.github.florent37.materialviewpager.MaterialViewPager;
import com.squareup.picasso.Picasso;


public class MainActivity extends ActionBarActivity {

    MaterialViewPager materialViewPager;
    View headerLogo;
    ImageView headerLogoContent;
    DrawerLayout mDrawer;
    ActionBarDrawerToggle mDrawerToggle;
    android.support.v7.widget.Toolbar toolbar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //  Declare a new thread to do a preference check
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                //  Initialize SharedPreferences
                SharedPreferences getPrefs = PreferenceManager
                        .getDefaultSharedPreferences(getBaseContext());

                //  Create a new boolean and preference and set it to true
                boolean isFirstStart = getPrefs.getBoolean("firstStart", true);

                //  If the activity has never started before...
                if (isFirstStart) {

                    //  Launch app intro
                    Intent i = new Intent(MainActivity.this, DefaultIntro.class);
                    startActivity(i);

                    //  Make a new preferences editor
                    SharedPreferences.Editor e = getPrefs.edit();

                    //  Edit preference to make it false because we don't want this to run again
                    e.putBoolean("firstStart", false);

                    //  Apply changes
                    e.apply();
                }
            }
        });


        // Start the thread
        t.start();



        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //4 onglets
        final int tabCount = 4;

        //les vues définies dans @layout/header_logo
        headerLogo = findViewById(R.id.headerLogo);
        headerLogoContent = (ImageView) findViewById(R.id.headerLogoContent);

        //le MaterialViewPager
        this.materialViewPager = (MaterialViewPager) findViewById(R.id.materialViewPager);
        toolbar = materialViewPager.getToolbar();
        mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (toolbar != null) {
            setSupportActionBar(toolbar);
            final ActionBar actionBar = getSupportActionBar();
            if (actionBar != null) {
                actionBar.setDisplayHomeAsUpEnabled(true);
                actionBar.setDisplayShowHomeEnabled(true);
                actionBar.setDisplayShowTitleEnabled(true);
                actionBar.setDisplayUseLogoEnabled(false);
                actionBar.setHomeButtonEnabled(true);
            }
        }
        mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, 0, 0);
        mDrawer.setDrawerListener(mDrawerToggle);
        materialViewPager.getViewPager().setAdapter(new FragmentStatePagerAdapter(getSupportFragmentManager()) {


            @Override
            public Fragment getItem(int position) {
                //je créé pour chaque onglet un RecyclerViewFragment
                return RecyclerViewFragment.newInstance();
            }

                @Override
                public int getCount() {
                    return 4;
                }

                //le titre à afficher pour chaque page
                @Override
                public CharSequence getPageTitle(int position) {
                    switch (position % 4) {
                        case 0:
                            return "ACADEMICS";
                        case 1:
                            return "NEWS FEEDS";
                        case 2:
                            return "EVENTS";
                        case 3:
                            return "MISC";
                        default:
                            return "Page " + position;
                    }

                }

                int oldItemPosition = -1;
                @Override
                public void setPrimaryItem(ViewGroup container, int position, Object object) {
                    super.setPrimaryItem(container, position, object);

                    //seulement si la page est différente
                    if (oldItemPosition != position) {
                        oldItemPosition = position;

                        //définir la nouvelle couleur et les nouvelles images
                       Drawable imageUrl = null;
                        int color = Color.BLACK;
                        Drawable newDrawable = null;




                        switch (position) {
                            case 0:
                                imageUrl = getResources().getDrawable(R.drawable.academics);
                                color = getResources().getColor(R.color.cyan);
                                newDrawable = getResources().getDrawable(R.drawable.earth);
                                break;
                            case 1:
                                imageUrl = getResources().getDrawable(R.drawable.newsfeeds);
                                color = getResources().getColor(R.color.red);
                                newDrawable = getResources().getDrawable(R.drawable.tennis);
                                break;
                            case 2:
                                imageUrl = getResources().getDrawable(R.drawable.events);
                                color = getResources().getColor(R.color.green);
                                newDrawable = getResources().getDrawable(R.drawable.evennt);
                                break;
                            case 3:
                                imageUrl = getResources().getDrawable(R.drawable.misc);
                                color = getResources().getColor(R.color.lime);
                                newDrawable = getResources().getDrawable(R.drawable.light);
                                break;
                        }

                        //puis modifier les images/couleurs
                        int fadeDuration = 400;
                        materialViewPager.setColor(color, fadeDuration);
                        materialViewPager.setImageDrawable(imageUrl, fadeDuration);
                        toggleLogo(newDrawable,color,fadeDuration);

                    }
                }
            });

            //permet au viewPager de garder 4 pages en mémoire (à ne pas utiliser sur plus de 4 pages !)
            this.materialViewPager.getViewPager().setOffscreenPageLimit(tabCount);
            //relie les tabs au viewpager
            this.materialViewPager.getPagerTitleStrip().setViewPager(this.materialViewPager.getViewPager());
        }

    private void toggleLogo(final Drawable newLogo, final int newColor, int duration){

        //animation de disparition
        final AnimatorSet animatorSetDisappear = new AnimatorSet();
        animatorSetDisappear.setDuration(duration);
        animatorSetDisappear.playTogether(
                ObjectAnimator.ofFloat(headerLogo, "scaleX", 0),
                ObjectAnimator.ofFloat(headerLogo, "scaleY", 0)
        );

        //animation d'apparition
        final AnimatorSet animatorSetAppear = new AnimatorSet();
        animatorSetAppear.setDuration(duration);
        animatorSetAppear.playTogether(
                ObjectAnimator.ofFloat(headerLogo, "scaleX", 1),
                ObjectAnimator.ofFloat(headerLogo, "scaleY", 1)
        );

        //après la disparition
        animatorSetDisappear.addListener(new AnimatorListenerAdapter() {
            @Override
            public void onAnimationEnd(Animator animation) {
                super.onAnimationEnd(animation);

                //modifie la couleur du cercle
                ((GradientDrawable) headerLogo.getBackground()).setColor(newColor);

                //modifie l'image contenue dans le cercle
                headerLogoContent.setImageDrawable(newLogo);

                //démarre l'animation d'apparition
                animatorSetAppear.start();
            }
        });

        //démarre l'animation de disparition
        animatorSetDisappear.start();
    }
    @Override
    protected void onPostCreate(Bundle savedInstanceState) {
        super.onPostCreate(savedInstanceState);
        mDrawerToggle.syncState();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        return mDrawerToggle.onOptionsItemSelected(item) ||
                super.onOptionsItemSelected(item);
    }

}

Activitylayout.xml

    <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.github.florent37.materialviewpager.MaterialViewPager
        android:id="@+id/materialViewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:viewpager_logo="@layout/header_logo"
        app:viewpager_pagerTitleStrip="@layout/material_view_pager_pagertitlestrip_newstand"
        app:viewpager_logoMarginTop="100dp"
        app:viewpager_color="@color/colorPrimary"
        app:viewpager_headerHeight="200dp"
        app:viewpager_headerAlpha="0.6"
        app:viewpager_hideLogoWithFade="false"
        app:viewpager_hideToolbarAndTitle="true"
        app:viewpager_enableToolbarElevation="true"
        app:viewpager_parallaxHeaderFactor="1.5"
        app:viewpager_headerAdditionalHeight="20dp"
        app:viewpager_displayToolbarWhenSwipe="true"
       app:viewpager_transparentToolbar="true"
        app:viewpager_animatedHeaderImage="true"

        />

    <include layout="@layout/drawer" />

</android.support.v4.widget.DrawerLayout>

解决方案

you should change the inheritance of java use

ActionBarActivity

to

Activity

and leave the dialog theme in the manifest as it is. i think you will not have the problem.

这篇关于我的Andr​​oid工作室项目工程精细的棒棒糖,但崩溃而奇巧设备测试的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆