@android_ru

Страница 76 из 3205
Maxim
22.08.2016
10:49:36
Ну не срвсем

Наследуем биндер в нем поле для фрагмениа, туда фрагмент и putBinder )

Konstantins
22.08.2016
10:51:22
ну так все данные фрагмента складывай в фрагмент и сохраняй в saveInstanceState фрагмента

а в активность встраивай фрагмент

Google
Maxim
22.08.2016
10:51:38
вот например, есть карта, она в фрагменте, мы там нарисовали какие-то точки, определили местоположение и сфокусировались на нем, а при повороте экрана хорошо бы использовать уже созданную карту, а не ждать пока все это заново произойдет

Konstantins
22.08.2016
10:52:00
ну сохраняй данные внутри фрагмента

Maxim
22.08.2016
10:55:31
тогда странно, фрагмент мы создаем внутри активити, fragment = (Fragment) fragmentClass.newInstance();, и где тут отсылка к тому что что-то могло быть сохранено внутри фрагмента?

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

И фрагмент создается заново ведь...

Gerc
22.08.2016
11:01:40
Фрагмент неправильно создается

Konstantins
22.08.2016
11:02:14
почему?

дефолтный конструктор вызван, всё ок

Maxim
22.08.2016
11:03:04
Фрагмент неправильно создается
Автосоздавалка в андроид студио рекомендует создавать через нью инстанс

Gerc
22.08.2016
11:03:27
У фрагмента пустой конструктор дб и статический метод newInstance

Google
Gerc
22.08.2016
11:04:36
и в чём беда?
В том что вызывается Class.newIns... Вместо Fragment.newI....

Maxim
22.08.2016
11:04:53
А почему так?
Я не знаю, но рекомендация вроде

В том что вызывается Class.newIns... Вместо Fragment.newI....
Так класс наследуется от фрагмента

ROMAN
22.08.2016
11:05:43
Пацаны кто знает как можно кастомизировать высоту и шрифт таблаяута который в апкомпакт лежит?

Konstantins
22.08.2016
11:05:54
может, идеологически это не верно, но работать должно

Konstantins
22.08.2016
11:06:53
так

ROMAN
22.08.2016
11:07:01
Через стили
А ссылочка не у кого не закалялась?

Konstantins
22.08.2016
11:07:02
а ты не можешь активности выставить android:configChanges="orientation|screenSize"?

Maxim
22.08.2016
11:07:08
Ведь с момента появления фрагментов гугл настойчиво рекомендует ими пользоваться

Konstantins
22.08.2016
11:07:26
оно вообще медленнее, чем через конструтор

Maxim
22.08.2016
11:07:45
Konstantins
22.08.2016
11:08:22
Это что? Запретить поворот?))
нет, это значит, что твоя активность не будет пересоздаваться при поворотах. Вместо этого, будет вызываться метод onConfigurationChanged

а то, что ты сделал (сохранил класс фрагмента) - терпимо

я думал изначально, что ты сам инстанс фрагмента хочешь сохранить

Google
Konstantins
22.08.2016
11:11:03
зло, не надо так
этож почему?

Alexey
22.08.2016
11:11:23
зачем у тебя newInstance фрагментов кидается исключениями?

Maxim
22.08.2016
11:11:56
зачем у тебя newInstance фрагментов кидается исключениями?
Обертку из try это я скопипастил откуда то

Можно без нее

Alexey
22.08.2016
11:12:37
этож почему?
потому что существует множество способов изменить конфигурацию, где-то я видел чтобы все учесть там 3-метровую портянку списка надо написать и потом в этом методы onConfigChanges ещё понять какая конфигурация поменялась, то ли экран повернули, то ли ещё что произошло

Maxim
22.08.2016
11:12:47
зачем у тебя newInstance фрагментов кидается исключениями?
А в чем разница между созданием через класс и так? Просто в скорости?

Alexey
22.08.2016
11:12:51
этож почему?
лучше пусть пересоздаст активити я считаю

Konstantins
22.08.2016
11:13:17
зачем?

если в этом нету нужды?

Maxim
22.08.2016
11:14:02
если в этом нету нужды?
Ненене, давайте не будем искать обходных путей, надо ж разобраться в итоге

Получается при пересоздании активити мне нужно пересоздать все фрагменты?

А как тогда сделать так чтоб новый фрагмент учел сохраненное состояние?

Konstantins
22.08.2016
11:16:53
попробуй

Alexey
22.08.2016
11:16:59
А как тогда сделать так чтоб новый фрагмент учел сохраненное состояние?
можно сделать setRetainInstance(true) во фрагменте, тогда он не будет пересоздаваться при пересоздании активити

Konstantins
22.08.2016
11:17:33
+ if (savedInstanceState == null) { createNewFragment() }

Alexey
22.08.2016
11:17:59
только не путай пересоздание view во фрагменте и пересоздание самого фрагмента. View всегда будет пересоздаваться при пересоздании активити

фрагмент он просто как контролер над своей View

Google
Alexey
22.08.2016
11:19:25
также делая replace фрагмента, ты сам намеренно пересоздаешь фрагмент.

Konstantins
22.08.2016
11:21:41
да, по сути тебе нужно один раз фрагмент создать и разместить во вью

дальше всё fragmentManager сделает

а все данные фрагмента сохраняй уже в нём

Maxim
22.08.2016
11:23:11
а что с пересозданием вью? Тоесть если у меня фрагмент внутри себя содержит карту то мне именно ее надо сохранять внутри фрагмента?

Admin
ERROR: S client not available

Konstantins
22.08.2016
11:26:08
данные скорее

за вью ты не отвечаешь

Alexey
22.08.2016
11:26:53
а в onCreateView к примеру проверить если saveInstanceState не нулл, значит ты сохранил эти данные и view пересоздалась, т.е. тебе надо эти данные на карту применить, разместить твои точки там

Konstantins
22.08.2016
11:28:25
Может почитай про lifecycle, чтобы было яснее, что к чему?

Alexey
22.08.2016
11:28:27
это случается при перевороте экрана или само по себе, система может твое приложение убить сохранив данные

Может почитай про lifecycle, чтобы было яснее, что к чему?
вот я по доке долго не мог вдуплить в сохранине данных, спустя год может таки понял

Alexey
22.08.2016
11:29:44
А то не чииал...
если не читал, то прочитай, вероятно сразу не поймёшь, спрашивай здесь

Maxim
22.08.2016
11:30:38
если не читал, то прочитай, вероятно сразу не поймёшь, спрашивай здесь
Так и говорю же, вижу перед собой эту картинку ))

Alexey
22.08.2016
11:32:29
Так и говорю же, вижу перед собой эту картинку ))
ну вот все верно, только здесь не указано у фрагмента влияние флага retainInstance

Maxim
22.08.2016
11:43:11
так получается что мне надо в onSaveInstanceState активити, из моих фрагментов достать некую конфигурацию и сохранить ее, а в onCreate смотреть есть ли что-то сохраненное, и если да, то пересоздавать фрагменты, передавая эту самую сохраненную конфигурацию?

просто при повороте экрана фрагмент судя по всему уничтожается к херам и не возраждается после, если его в onCreate не создать опять

Google
Maxim
22.08.2016
11:45:43
или Bundle который перелдается в onSaveInstanceState фрагмента это тот же бандл который получит активити когда пересоздастся?

Gerc
22.08.2016
11:47:04
Сравни хэши ссылок

Alexey
22.08.2016
11:57:19
ты можешь использовать onSaveInstanceState активити или фрагмента

тот что во фрагменте, для работы с данными фрагмента, тот что для активити для работы с данными активити

по дефолту

если не поставлен фраг retainInstance

если есть флаг, то фрагмент (но не View фрагмента!) переживает смерть активити,

это всё справедливо для поворота

если ты из активити намеренно во фрагмент менеджере делаешь replace, то там конечно пересоздание фрагмента идёт

это всё справедливо для поворота
ну и для случая когда система самопроизвольно убивает активити

Konstantins
22.08.2016
12:07:07
так положи фрагмент в бекстек

закоммить

и фрагментманагер всё сделает

ROMAN
22.08.2016
13:47:29
Кто знает как в webview по длинному тапу вызвать диалог точнее попап нужен. Может кто стыкался с такой задачей?

Konstantins
22.08.2016
13:49:24
а лонгКликЛистенер`a у него нету?

Страница 76 из 3205