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

Фрагменты - Android

Восстановить пароль Регистрация
 
Maksim2309
45 / 45 / 2
Регистрация: 17.01.2013
Сообщений: 328
03.05.2014, 16:48     Фрагменты #1
Всем привет. С htmlcleaner`ом разобрался появилась другая проблема. При переключении фрагментов добавил анимацию:
Bottom_up
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android" > 
 
   <alpha  
     android:duration="@android:integer/config_mediumAnimTime"  
     android:fromAlpha="0.0"  
     android:interpolator="@android:anim/accelerate_interpolator"  
     android:toAlpha="1.0" />  
 
 </set>
Я в курсе что это не сдвиг вниз просто переделал а название менять не стал)))
И Bottom_down
XML
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android" > 
 
   <alpha  
     android:duration="@android:integer/config_mediumAnimTime"  
     android:fromAlpha="1.0"  
     android:interpolator="@android:anim/accelerate_interpolator"  
     android:toAlpha="0.0" />  
 
 </set>
Вот функция смены:
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
48
49
50
51
52
53
54
55
56
57
58
...
rootView.setOnTouchListener(new View.OnTouchListener() {
                    @SuppressLint("Recycle")
                    public boolean onTouch(View v, MotionEvent touchevent) {
                        FragmentTransaction fTrans;
                        switch (touchevent.getAction())
                         {
                                // when user first touches the screen we get x and y coordinate
                                 case MotionEvent.ACTION_DOWN: 
                                 {
                                     y1 = touchevent.getY();
                                     break;
                                }
                                 case MotionEvent.ACTION_UP: 
                                 {
                                     y2 = touchevent.getY(); 
                                     // if UP to Down sweep event on screen
                                     if (y1 < y2) 
                                     {
                                         shetfrag++;
                                         if (shetfrag > 3) shetfrag = 3;
                                         fTrans = getFragmentManager().beginTransaction();
                                         fTrans.setCustomAnimations(R.layout.bottom_up, R.layout.bottom_down);
                                         switch(shetfrag)
                                         {
                                         case 1: fTrans.replace(R.id.fragment1, frag3);
                                                                        break;
                                         case 2: fTrans.replace(R.id.fragment1, frag2);
                                                                        break;
                                         case 3: fTrans.replace(R.id.fragment1, frag1);
                                                                        break;
                                         }
                                         fTrans.commit();
                                     }
                                    
                                     //if Down to UP sweep event on screen
                                     if (y1 > y2)
                                     {
                                         shetfrag--;
                                         if (shetfrag < 1) shetfrag = 1;
                                         fTrans = getFragmentManager().beginTransaction();
                                         fTrans.setCustomAnimations(R.layout.bottom_up, R.layout.bottom_down);
                                         switch(shetfrag)
                                         {
                                         case 3: fTrans.replace(R.id.fragment1, frag1);
                                                                        break;
                                         case 2: fTrans.replace(R.id.fragment1, frag2);
                                                                        break;
                                         case 1: fTrans.replace(R.id.fragment1, frag3);
                                                                        break;
                                         }
                                         fTrans.commit();
                                      }
                                     break;
                                 }
                         }
                        return true;
...
Все работает прекрасно, но при смене фрагментов проскакивает frag1 (т.е. появляется а потом выскакивает вызываемый фрагмент, например если меняю frag2 с frag3 то frag1 моргнет и потом появляется frag3) все перелопатил не нашел ошибку.
Вот инициализация:
Java
1
2
3
frag1 = new myclass1();
        frag2 = new myclass2();
        frag3 = new myclass3();
Заранее спасибо! Жду ответа (хотя бы наводку какую-нибудь)

Добавлено через 2 часа 19 минут
Все, вопрос решен. Всем спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.05.2014, 16:48     Фрагменты
Посмотрите здесь:

Фрагменты в Android Android
Android Заменить Активити на Фрагменты
Android View Pager разные фрагменты на страницах, не понимаю как?
SlidingTab - фрагменты с RecycleView (ListView) Android
Android Фрагменты и данные
Android При смене ориентации экрана накладываются фрагменты
Android Как добавить фрагменты в Tabbed Activity (Андроид Студио)?
Android Не могу разобраться, как подключать Фрагменты
BackStack и Фрагменты Android
Android Вложенные фрагменты
Android Фрагменты: приложение вылетает при 4-ом нажатии на кнопку
Как листать фрагменты в ViewPager по кнопке? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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