Как добавить переход при переключении активности? - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь создать приложение, и мне, наконец, удалось реализовать панель навигации, которая переключается между действиями с помощью библиотеки (https://github.com/ittianyu/BottomNavigationViewEx).
Все работает нормально, но при переключении между действиями анимация довольно плохая.

Я нашел учебник, в котором они использовали overridePendingTransition () для добавления анимации, но по какой-то причине я не могу использовать это здесь.

Я уже создал 4 анимации: slideleft, slideleftout, slideright, sliderightout и добавленная переменная num для отслеживания того, какое действие оно выбрано в настоящее время, и я добавил несколько операторов If, которые проверяют для каждого случая, какую анимацию следует выполнять играть (по крайней мере, это то, что я пытаюсь сделать).

Как мне реализовать эти анимации здесь?

package com.example.score3.Utils;

import android.content.Context;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.util.Log;
import android.view.MenuItem;

import com.example.score3.MainActivity;
import com.example.score3.R;
import com.example.score3.SecondActivity;
import com.example.score3.ThirdActivity;
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;

public class BottomNavigationViewHelper {

    private static final String TAG = "BottomNavigationViewH";

    static int num = 0;

    public static void setupBottomNavigationView(BottomNavigationViewEx bottomNavigationViewEx){
        Log.d(TAG, "setupBottomNavigationView: Setting up BNV");
        bottomNavigationViewEx.enableAnimation(false);
        bottomNavigationViewEx.enableItemShiftingMode(false);
        bottomNavigationViewEx.enableShiftingMode(false);
        bottomNavigationViewEx.setIconSize(30,30);
    }

    public static void enableNavigation(final Context context, BottomNavigationViewEx view){
        view.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
                switch (menuItem.getItemId()){
                    case R.id.ic_league:
                        Intent intent1 = new Intent(context, MainActivity.class);//ACTIVITY_NUM = 0;
                        context.startActivity(intent1);
                        if(num>0){

                        }

                        num = 0;

                        break;
                    case R.id.ic_csgo:
                        Intent intent2 = new Intent(context, SecondActivity.class);//ACTIVITY_NUM = 1;
                        context.startActivity((intent2));

                        if (num==0) {

                        } else {

                        }

                        num = 1;
                        break;
                    case R.id.ic_starcraft2:
                        Intent intent3 = new Intent(context, ThirdActivity.class);//ACTIVITY_NUM = 2;
                        context.startActivity(intent3);
                        if (num<2){

                        }
                        num = 2;
                        break;
                }


                return false;
            }
        });
    }

}

1 Ответ

0 голосов
/ 06 марта 2019

Вы не можете напрямую использовать overridePendingTransition() in, так как это метод из Activity ( ссылка здесь ).Либо вам понадобится ссылка на вызывающее действие для вызова следующим образом:

activity.overridePendingTransition(R.anim.enter, R.anim.exit);

, либо вы можете использовать Bundle для предоставления анимации, если ваша минимальная версия SDK Build.VERSION_CODES.JELLY_BEAN.Документ для такого использования доступен здесь с подписью этого метода .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...