Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
#1

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

06.04.2015, 19:15. Просмотров 444. Ответов 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)
Как быть?!...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2015, 19:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Exception при использовании анимации фрагментов (Программирование Android):

Exception при использовании LocationClient (Google Play Services) - Программирование Android
Я пишу сервис для получения location. Есть IntentService и AlarmReceiver (чтобы получать location периодически). На строке ...

Смена Toolbar при смене фрагментов в Activity - Программирование Android
Добрый день! Есть Toolbar, который подключен к MainActivity. При запуске приложение открывается MainActivity с MainFragment. В методе...

Как перенести строку при записи в файл при использовании BufferedWriter? - Программирование Android
Записываю в файл строковые данные, но никак не получается перенести строку, все пишется сплошняком. BufferedWriter bw = new...

Exception при подключении - Программирование Android
В onCreate задаю статическое поле, создавая БД Далее пытаюсь открыть подключение для onCreate DataBase.DB = new DataBase(this); ...

Throwing new exception with unexpected pending exception - Программирование Android
Добрый день. Сразу перейдем к коду: public interface ApiInterface { @GET("object/preview")

Запуск анимации при старте активити - Программирование Android
Есть покадровая анимация, которая выставлена фоном одного из элементов интерфейса. прописана как надо: //анимация ...

5
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
07.04.2015, 03:22 #2
Цитата Сообщение от Mikalai Посмотреть сообщение
приложении есть 2 фрагмента сменяющие друг друга на экране.
Чуть больше кода и разметку с контейнером фрагментов выложи, так не понятно.
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
07.04.2015, 11:23  [ТС] #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();
    }
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
07.04.2015, 21:22 #4
Цитата Сообщение от Mikalai Посмотреть сообщение
метод changeFragment() вызывается при нажатии на кнопки на фрагментах
Блин, выложите разметку (xml, если используется) и полный код активити и фрагмента, в которм клик происходит... Ничего секретного там все равно нет) Я запущу, посмотрю, в чем ошибка, мне самому код дописывать лень, честно... А так не пойму
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
09.04.2015, 21:51  [ТС] #5
Всё решилось добавлением фрагментов в бекстек
Java
1
fragmentTransaction.addToBackStack("");
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
09.04.2015, 22:04 #6
интересно, у меня тоже в приложении переключаются фрагменты, но все норм
0
09.04.2015, 22:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2015, 22:04
Привет! Вот еще темы с ответами:

Exception при нажатии любых кнопок - Программирование Android
Я выставил листенер самим правильным образом - через xml, но при нажатии вылетает ошибка: 02-14 21:55:09.355: ERROR/AndroidRuntime(974):...

FATAL EXCEPTION при смене фрагмента - Программирование Android
При смене фрагмента ИНОГДА вываливается ошибка 01-20 14:44:55.539 19482-119482 E/AndroidRuntime: FATAL EXCEPTION: main ...

FATAL EXCEPTION: main при старте приложения на android ниже API 21 - Программирование Android
Не могу понять где искать ошибку. Приложение при запуске на android ниже API 21 сразу падает с ошибкой 09-08 03:19:31.171...

NoSuchMethodError при использовании Firebase - Программирование Android
Добрый день. Пытаюсь получить ссылку в onCreate() DatabaseReference firebaseDatabase = FirebaseDatabase.getInstance().getReference(); ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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