Я хочу анимировать мой фрагмент на фрагменте, но я получаю ошибку в анимации загрузки - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу, чтобы задняя часть экрана моего приложения появлялась у меня на экране, чтобы анимировать от кнопки до места. Я знаю, как сделать это в действии, но во фрагменте это вызывает проблемы.

В этом есть ошибка, котораяговорит, что это не может быть применено к фрагменту, и когда я помещаю контекст получения, это не оживляет.Пожалуйста, скажите мне, что не так.

Это мой основной фрагмент кода:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View view =inflater.inflate(R.layout.fragment_main, container, false);
    samabtn=(Button) view.findViewById(R.id.samabtn);
    samabtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MainActivity mainActivity=(MainActivity)getActivity();
            mainActivity.loadParrablesFragment();
        }
    });
    Lovebtn=(Button) view.findViewById(R.id.Lovebtn);
    Lovebtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MainActivity mainActivity=(MainActivity)getActivity();
            mainActivity.loadChapter2Fragment();


        }
    });
    Adventurebtn=(Button) view.findViewById(R.id.Adventurebtn);
    Adventurebtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MainActivity mainActivity=(MainActivity)getActivity();
            mainActivity.loadAdventureFragmnet();

        }
    });
    menbtn=(Button)view.findViewById(R.id.menbtn);
    frombottom=  AnimationUtils.loadAnimation(this,R.anim.frombottom);
    menbtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            MainActivity mainActivity=(MainActivity)getActivity();
            mainActivity.loadMysteryFragment();

        }
    });

Я попытался получить контекст, теперь ошибка исчезла, но нужная анимация не работает

1 Ответ

0 голосов
/ 13 сентября 2018

Я предполагаю, что проблема, о которой вы говорите, возникает в этой строке:

frombottom=  AnimationUtils.loadAnimation(this,R.anim.frombottom);

Если предположить, что я прав, проблема в том, что первый аргументloadAnimation() должно быть Context.Действия - это контексты, поэтому это работает, когда вы делаете это внутри действия.Однако фрагменты являются , а не контекстами, поэтому вы не можете передать this в качестве первого аргумента.

Внутри фрагмента самый простой способ получить объект контекста - вызвать getContext(), хотя есть части жизненного цикла, где это вернет null.Внутри onCreateView(), однако, это безопасно.

Поэтому напишите это вместо:

frombottom=  AnimationUtils.loadAnimation(getContext(), R.anim.frombottom);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...