Урок 125. ViewPager

Обсуждение уроков
niosus
Сообщения: 1
Зарегистрирован: 11 ноя 2013, 21:13

Re: Урок 125. ViewPager

Сообщение niosus » 11 ноя 2013, 21:19

Добрый день!

У меня несколько отвлеченный вопрос.
на данный момент у меня есть viewPager, в котором хранятся 3 фрагмента. Так же, активити, в которой определен viewPager является контроллером в моей MVC. Она определяет кучу интерфейсов, в том числе UI интерфейс, который используют все 3 фрагмента для связи с активити.

Вопрос такой - сейчас я проверяю какой из фрагментов прислал событие по тэгу активного фрагмента и выглядит все это как-то очень коряво. Нет ли какого нибудь примера как объеденить viewPager с парадигмой model-view-controller или может кто знает ссылку на ресурс, де можно подсмотреть или проверить на сколько хороша текущая архитектура?

PS, я понимаю, что здесь может не лучшее место для этого, но я не знаю где бы еще спросить. Спасибо большое.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 125. ViewPager

Сообщение Mikhail_dev » 11 ноя 2013, 22:53

Если вкратце, то у нас такая же схема используется, правда несколько усложненная. Также через слушатели общаемся с фрагментов к активности, которая уже принимает решения.
Вопрос такой - сейчас я проверяю какой из фрагментов прислал событие по тэгу активного фрагмента и выглядит все это как-то очень коряво.
Я не совсем понял про какие Вы проблемы говорите. Делается слушатель, вызывается его метод и если и надо, то передается к примеру какой-то флаг того, кто вызвал метод. К примеру
mCallback.todoSomeMethod(someInformation, Utils.FRAGMENT_ONE);
а вообще лично у нас к разным фрагментам, обычно разные методы, а там где общие, там не важно кто вызвал. Как-то так.
На счет MVC сильно не заморачивайтесь. Советую почитать код приложения Google IO, исходный код которых есть в инете. Очень грамотно сделали они его, впрочем оно и сделано, дабы показать как правильно и красиво писать код под андроид.

ruslan_lepeha
Сообщения: 2
Зарегистрирован: 13 ноя 2013, 18:28

Re: Урок 125. ViewPager

Сообщение ruslan_lepeha » 13 ноя 2013, 21:47

Подскажите пожалуйста.
Как в PageFragment.java вызвать ContextMenu для текущей страницы??

Gargonis
Сообщения: 9
Зарегистрирован: 30 окт 2013, 22:19

Re: Урок 125. ViewPager

Сообщение Gargonis » 22 ноя 2013, 05:39

Добрый день!
Скажите, пожалуйста, как в ViewPager вставить ещё и OnClickListener, чтобы можно было после перелистывания страниц кликать на их содержимое, и, например, вызывать другое Activity?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 125. ViewPager

Сообщение KamiSempai » 22 ноя 2013, 18:20

У ViewPager нет ItemClickListener-а.
Каждая страница - это View, значит, вы можете самостоятельно назначить OnClickListener на этот View.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Andrei
Сообщения: 1
Зарегистрирован: 25 ноя 2013, 19:12

Re: Урок 125. ViewPager

Сообщение Andrei » 25 ноя 2013, 19:21

Здравствуйте
Кто-нибудь может помочь с этим ViewPager?
Хотелось бы реализовать возможность слайдов бесконечно в обе стороны
При этом на страничке должна меняться дата (на один день + или - в зависимости от стороны, при этом воскресение пропускаться)
Странички однотипные с выводом запроса из БД по выбранной дате

И скажите пожалуйста, ожидается ли урок по MySQL а то не очень понятно как это сделать :(

Frazek
Сообщения: 5
Зарегистрирован: 19 июн 2013, 11:20

Re: Урок 125. ViewPager

Сообщение Frazek » 01 дек 2013, 21:51

Именно с этим уроком какой-то трабл
http://startandroid.ru/ru/uroki/vse-uro ... pager.html
Исправте пожалуйста.

Jeka87x
Сообщения: 5
Зарегистрирован: 25 ноя 2013, 20:46

Re: Урок 125. ViewPager

Сообщение Jeka87x » 03 дек 2013, 02:21

Можно ли как-то сделать чтобы все заголовки были закреплены и между ними перелистывать? Что-то типа как сейчас на Google Play сделано.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 125. ViewPager

Сообщение Foenix » 03 дек 2013, 08:07

http://stackoverflow.com/questions/7046 ... google-app
а загуглить никак, да?
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

spirit
Сообщения: 2
Зарегистрирован: 04 дек 2013, 15:26

Re: Урок 125. ViewPager

Сообщение spirit » 08 дек 2013, 01:49

Здравствуйте, нужна ваша помощь,только начал разбираться.
Вопрос в следующем, есть FragmentPagerAdapter, и созданные в нем 3 фрагмента

[syntax=java]
public class TitleAdapter extends FragmentPagerAdapter {
public final String titles[] = new String[] { "FragA", "FragB", "FragC" };
public final Fragment frags[] = new Fragment[titles.length];

public TitleAdapter(FragmentManager fm) {
super(fm);
frags[0] = new FragmentA();
frags[1] = new FragmentB();
frags[2] = new FragmentC();
}[/syntax]

В каждом фрагменте есть кнопка, как мне из activity получить доступ к ней.
пробовал следующим образом:

[syntax=java]
TitleAdapter titleAdapter = new TitleAdapter(getSupportFragmentManager());
btnStart = (Button) titleAdapter.frags[0].getView().findViewById(R.id.btnStart);[/syntax]

Но при запуске, ошибка java.lang.NullPointerException

что я не так делаю?

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: Урок 125. ViewPager

Сообщение rezak90 » 08 дек 2013, 01:57

нужно организовать интерфейс и определить его в активити, во фрагмент в onAttachActivity получить ссылку на интерфейс и потом использовать что бы связаться с активити
R.id.team
Политика на форуме запрещена

spirit
Сообщения: 2
Зарегистрирован: 04 дек 2013, 15:26

Re: Урок 125. ViewPager

Сообщение spirit » 11 дек 2013, 16:50

rezak90 писал(а):нужно организовать интерфейс и определить его в активити, во фрагмент в onAttachActivity получить ссылку на интерфейс и потом использовать что бы связаться с активити
Не очень, понимаю логику как это работает, попробовал сделать так:
в MainActivity.java вставил
[syntax=java5]
public interface MyInterface {
}[/syntax]

В фрагмент дописал следующее:

[syntax=java5]
public MyInterface mMyInterface;
public void onAttach (MainActivity activity){
if(activity instanceof MyInterface)
mMyInterface = (MyInterface) activity;
}[/syntax]

Как мне теперь из активити получить ссылку на кнопку в фрагменте, что бы потом на нее уже можно было повешать listener?

saper666
Сообщения: 1
Зарегистрирован: 12 дек 2013, 19:55

Re: Урок 125. ViewPager

Сообщение saper666 » 12 дек 2013, 19:58

У меня такой вопрос:
на каждой странице у меня textview. я подгружаю текст и он не влазит целиком на страницу. как сделать вертикальную прокрутку текста на странице? (пробовал добавлять скроллы, но они только показываются - viewpager их блокирует)

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Урок 125. ViewPager

Сообщение KamiSempai » 13 дек 2013, 11:26

Не может быть такого. Поместите текст в ScrollView и все должно работать.
[syntax=xml] <ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
</ScrollView>[/syntax]
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Nproject
Сообщения: 1
Зарегистрирован: 03 янв 2014, 05:34

Re: Урок 125. ViewPager

Сообщение Nproject » 03 янв 2014, 05:44

Здравствуйте,подскажите пожалуйста,как быть в достаточно типичной ситуации. Я тоже, как и saper666 подгружаю текст и он не помещается целиком на страницу, но мне необходимо отобразить только то , что поместилось, а остальное отобразить на соседний экран, ну и так далее...
Есть идея, что необходимо заранее знать какое количество текста помещается на экран(на каждом экране TextView),скажем в строчках, а далее брать интервалами, которые можно определить например как pageNumber*[i;i+n], где n-количество строчек,которое уместиться на странице.....но я честно говоря не знаю,как это можно реализовать(как считать строчки)+ возможно проблема с изменениями шрифтов, может быть кто-нибудь знает как быть в такой ситуации?нагуглить что-то не получается

Ijimekko
Сообщения: 1
Зарегистрирован: 13 янв 2014, 11:12

Re: Урок 125. ViewPager

Сообщение Ijimekko » 13 янв 2014, 11:21

Здравствуйте!
Столкнулся со следующей проблемой. Использую ViewPager и FragmentStatePagerAdapter. Всё замечательно работает, но, если происходит изменение ориентации экрана, происходит следующее. ViewPager сохраняет 3 страницы и после их воссоздаёт. По идее, при развотороте, Activity пересоздаётся, т.е. onCreate() отрабатывается. В onDestroy() ссылки обнуляю. Если я принудительно выгружаю приложение, то при запуске не происходит подобного. Где я не прав? Подскажите пожалуйста.
Так, вопрос решил:
@Override
protected void onSaveInstanceState(final Bundle outState) {
// super.onSaveInstanceState(outState);
}

sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

Re: Урок 125. ViewPager

Сообщение sheygam » 16 янв 2014, 01:48

Доброго время суток!
У меня вопрос на тему которая много раз поднималась но конкретно не кто ответ не дал.
Использую ViewPager и FragmentStatePagerAdapter. при запуске Activity во всех фрагментах крутятся прогресс бары, из другого класса "приходит сообщение" с номером фрагмента, задача убрать прогресс бар и установить нужное содержимое фрагмента , но так чтобы при перелистывании все сохранялось. Если кто то решал задачи по динамическому наполнению фрагментов помогите пожалуйста.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 125. ViewPager

Сообщение Mikhail_dev » 16 янв 2014, 02:09

В чем проблема сделать во фрагменте методы для обработки, которые дергать через активити? Другими словами это обычные вызовы методов. Нужно лишь ссылки сохранить на фрагменты при добавлении их в FragmentStatePagerAdapter.

Аватара пользователя
Mikhail_dev
Сообщения: 2386
Зарегистрирован: 09 янв 2012, 14:45
Откуда: Самара

Re: Урок 125. ViewPager

Сообщение Mikhail_dev » 16 янв 2014, 02:12

сли я принудительно выгружаю приложение, то при запуске не происходит подобного.
не происходит подобного чего? И как вы принудительно выгружаете?
Сразу скажу что в onDestroy ничего делать нельзя, метод может вообще не вызываться по самой природе Андроида. Используйте метод onStop или лучше еще onPause

sheygam
Сообщения: 9
Зарегистрирован: 16 янв 2014, 01:39

Re: Урок 125. ViewPager

Сообщение sheygam » 16 янв 2014, 02:23

m090050 писал(а):В чем проблема сделать во фрагменте методы для обработки, которые дергать через активити? Другими словами это обычные вызовы методов. Нужно лишь ссылки сохранить на фрагменты при добавлении их в FragmentStatePagerAdapter.
Отличная идея, но тогда возникает еще один вопрос, допустим я поменял содержимое, но при перелистывании у фрагмента вызывается метод onCreate(), как сохранить изменения? или в таком случае отказаться от FragmentStatePagerAdapter.

План действий такой:
1. использовать FragmentPagerAdapter
2. добавляем в свой Fragment нужный функционал
3. при public Fragment getItem(int position){} сохранять ссылки на Fragment
4. в момент когда нужно "подкрутить" Fragment берем его ссылку и дергаем свои функции


Я все правильно понял?

Ответить