Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
jenokizm
20 / 36 / 14
Регистрация: 27.03.2014
Сообщений: 754
#1

При смене ориентации экрана накладываются фрагменты - Программирование Android

08.08.2015, 11:16. Просмотров 722. Ответов 5
Метки нет (Все метки)

Юзаю Android.Support.V4.App.Fragment, вроде бы все нормально. При переключении из меню фрагменты скрываю отправляя в "стек" а кликнутый показываю.
Проблема в том что при перевороте устройства (смена ориентации) все что есть фрагменты налаживаются друг на друга((( при этом в коде все фрайгменты кроме выбранного по прежнему имеют fragment.IsVisible == false
Как с этим бороться? Кто сталкивался?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2015, 11:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос При смене ориентации экрана накладываются фрагменты (Программирование Android):

Не отображать SplashScreen при смене ориентации экрана
Не могу понять как сделать чтобы сплэш не появлялся снова при смене ориентации...

Выбрасывает из приложения при смене ориентации экрана
Здравствуйте. Следующая проблема. Создал папку layout-land в папке res. И при...

Блокировка навигации при смене ориентации экрана
Доброго времени суток.Прошу помощи у знающих: Приложение использует Navigation...

Потеря вывода при смене ориентации экрана
Калькулятор вывел результат в компонент textview. Стоит поменять ориентацию...

Задний фон при смене ориентации экрана
Здравствуйте! Мне надо чтобы фон не сжимался так, а как в HTML оптимизировал...

Потеря потока при смене ориентации
Здравствуйте! У меня приложения связывается по Bluetooth с другими...

5
alex1392
31 / 31 / 4
Регистрация: 24.07.2013
Сообщений: 187
08.08.2015, 13:21 #2
Если честно то перечитал 5раз и не понял что у тебя не так и в чем проблема.... скрины в студию... пожалуйста, и более точное описание проблемы, можно с кусочками кода...
0
jenokizm
20 / 36 / 14
Регистрация: 27.03.2014
Сообщений: 754
09.08.2015, 11:25  [ТС] #3
Цитата Сообщение от jenokizm Посмотреть сообщение
Проблема в том что при перевороте устройства (смена ориентации) все что есть фрагменты налаживаются друг на друга
Не понимаю чего тут непоятного? Переворачиваю устройство и все накладывается слоями!
Положи на свой стол тетрадку а сверху ручку. Увидишь наложение, будет видна и ручка и тетрадка. вот это и будут фрагменты_)

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
mFragment1 = new Fragment1();
            mFragment2 = new Fragment2();
            mFragment3 = new Fragment3();
 
            mStackFragments = new Stack<SupportFragment>();
 
            var trans = SupportFragmentManager.BeginTransaction();
            trans.Add(Resource.Id.fragmentContainer, mFragment3, "Fragment3");
            trans.Hide(mFragment3);
 
            trans.Add(Resource.Id.fragmentContainer, mFragment2, "Fragment2");
            trans.Hide(mFragment2);
 
            trans.Add(Resource.Id.fragmentContainer, mFragment1, "Fragment1");
            trans.Commit();
 
            mCurrentFragment = mFragment1;
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void ShowFragment (SupportFragment fragment)
        {
            if (fragment.IsVisible){
                return;
            }
 
            var trans = SupportFragmentManager.BeginTransaction();
 
            trans.SetCustomAnimations(Resource.Animation.slide_in, Resource.Animation.slide_out, Resource.Animation.slide_in, Resource.Animation.slide_out);
 
            fragment.View.BringToFront();
            mCurrentFragment.View.BringToFront();
 
            trans.Hide(mCurrentFragment);
            trans.Show(fragment);
 
            trans.AddToBackStack(null);
            mStackFragments.Push(mCurrentFragment);
            trans.Commit();
 
            mCurrentFragment = fragment;
        }
0
PaDyra
32 / 32 / 25
Регистрация: 06.01.2012
Сообщений: 142
10.08.2015, 09:28 #4
При смене ориентации, изменяется рабочая область на устройстве, поэтому если хотите, чтобы ничего не налаживалось при смене ориентации, необходимо отдельно создавать файл ресурса для горизонтальной ориентации в папке layout-land. Я думаю вы этого не делали, поэтому и происходит наложение фрагментов.
0
jenokizm
20 / 36 / 14
Регистрация: 27.03.2014
Сообщений: 754
10.08.2015, 10:13  [ТС] #5
Цитата Сообщение от PaDyra Посмотреть сообщение
необходимо отдельно создавать файл ресурса для горизонтальной ориентации в папке layout-land
А ничего что у меня там такая же верстка будет? Поможет?
пс не вижу в этом смысла, у меня в динамике все создается и рассчитывается под экран. Все выглядит хорошо если бы не накладывались( *у меня крособразная верстка так сказать)
0
jenokizm
20 / 36 / 14
Регистрация: 27.03.2014
Сообщений: 754
11.08.2015, 11:08  [ТС] #6
Вопрос решен. Оказывается при перевороте он Креате заного все создавал а старое не удалял(
отключил пересоздание
C#
1
ConfigurationChanges = Android.Content.PM.ConfigChanges.ScreenSize | Android.Content.PM.ConfigChanges.Orientation
а там где надо пересоздал сам
C#
1
2
3
4
5
public override void OnConfigurationChanged(Android.Content.Res.Configuration newConfig)
        {
            base.OnConfigurationChanged(newConfig);
            //тут пересоздание вью
        }
0
11.08.2015, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.08.2015, 11:08
Привет! Вот еще темы с решениями:

Пропажа данных при смене ориентации
При поворачивании телефона все данные обнуляются и вообще такое такое чувство,...

Бесшовное проигрывание видео при смене ориентации
Предложите пример или подскажите каким образом можно организовать бесшовное...

Перезагрузка списка при смене ориентации приложения
Приветствую. Имеется приложение построено на фрагментах . В приложении есть...

Обнуляется массив при смене ориентации устройства
Здравствуйте. Суть такова. В активити создается массив из путей к...


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

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

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