Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
#1

Exception при использовании анимации фрагментов - Android

06.04.2015, 19:15. Просмотров 410. Ответов 5
Метки нет (Все метки)

В приложении есть 2 фрагмента сменяющие друг друга на экране.
Java
1
2
3
4
5
6
7
8
fragmentTransaction = fragmentManager.beginTransaction(); 
 
fragmentTransaction.setCustomAnimations(R.anim.fragment_vert_add, R.anim.fragment_vert_remove);
 if(fragment1.isAdded())
            fragmentTransaction.replace(R.id.linear_layout_id, fragment2);
        else
            fragmentTransaction.replace(R.id.linear_layout_id, fragment1);
        fragmentTransaction.commit();
Проблема возникает при нажатии на экран во время анимации:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalStateException: No activity
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1123)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1118)
            at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1927)
            at android.support.v4.app.Fragment.performActivityCreated(Fragment.java:1800)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:977)
            at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1136)
            at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
            at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1499)
            at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:456)
            at android.os.Handler.handleCallback(Handler.java:605)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:137)
            at android.app.ActivityThread.main(ActivityThread.java:4424)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:511)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
            at dalvik.system.NativeStart.main(Native Method)
Как быть?!...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2015, 19:15     Exception при использовании анимации фрагментов
Посмотрите здесь:

Запуск анимации при старте активити Android
Exception при нажатии любых кнопок Android
Как перенести строку при записи в файл при использовании BufferedWriter? Android
Android Exception при использовании LocationClient (Google Play Services)
Утечка памяти при использовании Handler Android
Android Крашится эмулятор при использовании Intent
Android Ошибка при использовании фонарика
Android Exception при подключении
Android Вылетает приложение при использовании Adobe Air
Android Оптимизация по размеру при использовании ProGuard
Android Throwing new exception with unexpected pending exception
Android Ошибка при использовании action bar sherlock

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590
07.04.2015, 03:22     Exception при использовании анимации фрагментов #2
Цитата Сообщение от Mikalai Посмотреть сообщение
приложении есть 2 фрагмента сменяющие друг друга на экране.
Чуть больше кода и разметку с контейнером фрагментов выложи, так не понятно.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
07.04.2015, 11:23  [ТС]     Exception при использовании анимации фрагментов #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Window;
import android.view.WindowManager;
 
public class MainActivity extends FragmentActivity{
 
Fragment1 fragment1;
Fragment2 fragment2;
 
 
FragmentManager fragmentManager;
FragmentTransaction fragmentTransaction;
 
 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
 
    setContentView(R.layout.some_layout);
 
    fragment1 = new Fragment1();
    fragment2 = new Fragment2();
 
    fragmentManager = getSupportFragmentManager();
 
    fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.setCustomAnimations(R.anim.fragment_vert_add, R.anim.fragment_vert_remove);
    fragmentTransaction.add(R.id.linear_layout_id, fragment1);
    fragmentTransaction.commit();
}
 
public void changeFragment() {
 
    fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.setCustomAnimations(R.anim.fragment_vert_add, R.anim.fragment_vert_remove);
 
    if(fragment1.isAdded())
        fragmentTransaction.replace(R.id.linear_layout_id, fragment2);
    else
        fragmentTransaction.replace(R.id.linear_layout_id, fragment1);
    fragmentTransaction.commit();
}
}
метод changeFragment() вызывается при нажатии на кнопки на фрагментах
Java
1
2
3
4
@Override
    public void onClick(View v) {
        ((MainActivity)getActivity()).changeFragment();
    }
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590
07.04.2015, 21:22     Exception при использовании анимации фрагментов #4
Цитата Сообщение от Mikalai Посмотреть сообщение
метод changeFragment() вызывается при нажатии на кнопки на фрагментах
Блин, выложите разметку (xml, если используется) и полный код активити и фрагмента, в которм клик происходит... Ничего секретного там все равно нет) Я запущу, посмотрю, в чем ошибка, мне самому код дописывать лень, честно... А так не пойму
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 651
09.04.2015, 21:51  [ТС]     Exception при использовании анимации фрагментов #5
Всё решилось добавлением фрагментов в бекстек
Java
1
fragmentTransaction.addToBackStack("");
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 590
09.04.2015, 22:04     Exception при использовании анимации фрагментов #6
интересно, у меня тоже в приложении переключаются фрагменты, но все норм
Yandex
Объявления
09.04.2015, 22:04     Exception при использовании анимации фрагментов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru