Урок 125. ViewPager

Обсуждение уроков
Аватара пользователя
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 берем его ссылку и дергаем свои функции


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

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

Re: Урок 125. ViewPager

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

Да. Еще можете глянуть метод у ВьюПейджера setOffscreenPageLimit. Вырезка с урока к одному из адаптеров
Можно сделать вывод. Этот адаптер быстрый, т.к. не требует пересоздания. Но затратный, т.к. все держит в памяти. Т.е. подходит для небольшого количества страниц. Например, набор вкладок или визард.

Правда есть нюанс: хоть сами фрагменты и не уничтожаются, но уничтожается их View-структура и потом создается заново. Вставьте лог в метод onCreateView и убедитесь. Хранится структура только текущей страницы и по одной справа и слева. Это кол-во соседних страниц с сохраняемой View-структурой может быть настроено методом setOffscreenPageLimit.
Вообще данные уж лучше сам фрагмент где-то забирает, если он мертвый, а данные ему готовы. Так будет логичней.

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

Re: Урок 125. ViewPager

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

m090050 спасибо, направление и идею я понял, буду копать, в прицепи количество фрагментов не большое 15-20, и не сильно весомые но аппликация по мимо этого потребляет ресурс, будем разбираться!

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

Re: Урок 125. ViewPager

Сообщение sheygam » 17 янв 2014, 17:59

Вопрос перенес в новую тему, не знаю как удалить сообщение.
viewtopic.php?f=33&t=3310
Последний раз редактировалось sheygam 17 янв 2014, 19:14, всего редактировалось 1 раз.

ruba123
Сообщения: 2
Зарегистрирован: 10 янв 2014, 16:33

Re: Урок 125. ViewPager

Сообщение ruba123 » 23 янв 2014, 18:03

Скажите пожалуйста, у меня такой вопрос, если класс уже наследуется от какого то другого, как тогда реализовать ViewPager?? Так как надо наследоваться от FragmentPagerAdapter, Fragment но мы не можем потому что наследуемся от другого класса, как быть в такой ситуации?

Ответить