Урок 125. ViewPager
Урок 125. ViewPager
В этом уроке:
- разбираемся с ViewPager
Click here to read this article!
- разбираемся с ViewPager
Click here to read this article!
Последний раз редактировалось damager82 26 май 2017, 13:42, всего редактировалось 3 раза.
-
- Сообщения: 1
- Зарегистрирован: 15 апр 2013, 15:59
Re: Урок 125. ViewPager
Спасибо за урок
Интересен был бы урок связанный с динамической заменой fragment-ов в viewpager
и как обрабатывать поворот экрана с viewpager (востановление всех фрагментов в viewpager со всеми данными)
Интересен был бы урок связанный с динамической заменой fragment-ов в viewpager
и как обрабатывать поворот экрана с viewpager (востановление всех фрагментов в viewpager со всеми данными)
Re: Урок 125. ViewPager
динамически можно только далеко идущие, так как левый и правый находятся в памяти и "подменить" их не получитсяИнтересен был бы урок связанный с динамической заменой fragment-ов в viewpager
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 14
- Зарегистрирован: 18 ноя 2012, 23:55
Re: Урок 125. ViewPager
Добрый вечер. Я немного не понимаю...
Не понимаю я вот чего, как мне можно сделать прослушку допустим, кнопок с другого активити??
Я просто ложу в массив шаблон(*xml) файл и листаю их, но само активити я ен создаю, по этому кнопки с других активити оно не видет.
Можете подсказать, как можно обойти эту проблему?
Мне нужно с Активити3, нажать на кнопку и получить свой выпадающий список допустим, а на Активити2 если нажать, то произойдут какие-либо другие действия.
Не понимаю я вот чего, как мне можно сделать прослушку допустим, кнопок с другого активити??
Я просто ложу в массив шаблон(*xml) файл и листаю их, но само активити я ен создаю, по этому кнопки с других активити оно не видет.
Можете подсказать, как можно обойти эту проблему?
Мне нужно с Активити3, нажать на кнопку и получить свой выпадающий список допустим, а на Активити2 если нажать, то произойдут какие-либо другие действия.
Re: Урок 125. ViewPager
всё дело в неправильной архитектуре, как можно нажимать на то чего нету? в один момент доступно только одно активити, остальных просто нет.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 14
- Зарегистрирован: 18 ноя 2012, 23:55
Re: Урок 125. ViewPager
Понимаете, у меня есть 3 активити:
Radisson_registration;
Radisson_registration_step_1;
Radisson_registration_step_2;
И разумеется на них все есть кнопки.
Я хотел через ViewPager, работать сразу с тремя, но когда писал код, увидел, что мы работает не с активити, а со слоями(*хмл - файлы). Вот и ломал голову, как сделать так, чтобы кнопка, находящаяся на третем активити, обрабатывалась в первом.
Просто нужно было написать ее метод(у меня это regMe(View v)).
Я думаю будет не удобно все в 1-ом активити хранить...Сильно много будет забито кодом, но это кажется единственный выход.
Radisson_registration;
Radisson_registration_step_1;
Radisson_registration_step_2;
И разумеется на них все есть кнопки.
Я хотел через ViewPager, работать сразу с тремя, но когда писал код, увидел, что мы работает не с активити, а со слоями(*хмл - файлы). Вот и ломал голову, как сделать так, чтобы кнопка, находящаяся на третем активити, обрабатывалась в первом.
Просто нужно было написать ее метод(у меня это regMe(View v)).
Я думаю будет не удобно все в 1-ом активити хранить...Сильно много будет забито кодом, но это кажется единственный выход.
Re: Урок 125. ViewPager
так надо было начинать с того что у Вас не активити, а View, если View то у вас же есть ссылка на каждый, вот и обращайтесь к методам/полям из каждой view. А вообще правильней работать ViewPager с фрагментами.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
- Сообщения: 14
- Зарегистрирован: 18 ноя 2012, 23:55
Re: Урок 125. ViewPager
Я пробовал работать с фрагментами, где-то что-то не получается. Но, ничего страшного. Буду идти к этому! =)
Re: Урок 125. ViewPager
Здравствуйте.
Я реализую перелистывание страниц книги через ViewPager.
Сейчас у меня реализация такая: в ViewPager находится 5 страниц-фрагментов, которые я перелистываю, и динамически подгружаю информацию в последние страницы, которые сейчас не видны.
Не стоит ли мне переделать ViewPager под большое кол-во фрагментов, т.е. кол-во фрагментов чтобы равнялось кол-ву моих страниц книги, количество которых может достигать 1500?
Я реализую перелистывание страниц книги через ViewPager.
Сейчас у меня реализация такая: в ViewPager находится 5 страниц-фрагментов, которые я перелистываю, и динамически подгружаю информацию в последние страницы, которые сейчас не видны.
Не стоит ли мне переделать ViewPager под большое кол-во фрагментов, т.е. кол-во фрагментов чтобы равнялось кол-ву моих страниц книги, количество которых может достигать 1500?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 125. ViewPager
Я бы посоветовал Вам уменьшить количество фрагментов до 3.
После перелистывании всегда возвращать фокус на среднюю страницу и менять содержимое фрагментов так, как будто страница пролисталась.
Получится что-то вроде бесконечной прокрутки. Только еще нужно будет позаботиться о правильном перелистывании на первую и последнюю страницу.
После перелистывании всегда возвращать фокус на среднюю страницу и менять содержимое фрагментов так, как будто страница пролисталась.
Получится что-то вроде бесконечной прокрутки. Только еще нужно будет позаботиться о правильном перелистывании на первую и последнюю страницу.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 125. ViewPager
KamiSempai, всё правильно заметил, только добавлю что хранить не фрагменты а что то иное, при перелистывании делать новый фрагмент в стек справа/лева и передавать ему номер страницы
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 125. ViewPager
У меня 5 фрагментов, чтобы создать "бесконечную" прокрутку, т.к. нашел только одно решение, использовать фрагменты: C' A B C A'. Конечно дублирование фрагментов меня смущает, но другого решения найти пока не смог.
А если сделать так: "После перелистывании всегда возвращать фокус на среднюю страницу и менять содержимое фрагментов так, как будто страница пролисталась.", то мне кажется не будет успевать обновляться контент на страницах, и будет мигание.
А если сделать так: "После перелистывании всегда возвращать фокус на среднюю страницу и менять содержимое фрагментов так, как будто страница пролисталась.", то мне кажется не будет успевать обновляться контент на страницах, и будет мигание.
А вот с этим моментом не понял, можно, пожалуйста, поподробнее?rezak90 писал(а):KamiSempai, всё правильно заметил, только добавлю что хранить не фрагменты а что то иное, при перелистывании делать новый фрагмент в стек справа/лева и передавать ему номер страницы
Re: Урок 125. ViewPager
Я в свое время делал именно так и самая жесть было заставить нормально перерисовываться страницы. Рабочее решение тогда нашел:KamiSempai писал(а):Я бы посоветовал Вам уменьшить количество фрагментов до 3.
После перелистывании всегда возвращать фокус на среднюю страницу и менять содержимое фрагментов так, как будто страница пролисталась.
Получится что-то вроде бесконечной прокрутки. Только еще нужно будет позаботиться о правильном перелистывании на первую и последнюю страницу.
[syntax=java]cTitleIndicator.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int state) {
if (state == ViewPager.SCROLL_STATE_IDLE) {
if (focusedPage == 0) {
new Handler().post(new Runnable() {
@Override
public void run() {
for(int i=0;i<3;i++){
cArray.prevMonth();
elCalendarViewMaker.makeGrid(ctx, mDialog, mOnResultListener, views, cArray);
if(i==currentSelView){
cTitleIndicator.setCurrentItem(currentSelView, false);
}
}
}
});
} else if (focusedPage == 2) {
new Handler().post(new Runnable() {
@Override
public void run() {
for(int i=0;i<3;i++){
cArray.nextMonth();
elCalendarViewMaker.makeGrid(ctx, mDialog, mOnResultListener, views, cArray);
if(i==currentSelView){
cTitleIndicator.setCurrentItem(currentSelView, false);
}
}
}
});
}
}
}
@Override
public void onPageSelected(int position) {
focusedPage = position;
}
});[/syntax]
Но если честно, я был бы рад, если бы мне подсказали, как можно ускорить перерисовку не используюя new Handler().post(new Runnable()...
Re: Урок 125. ViewPager
Спасибо за урок. А как настроить содержимое страниц? У меня их будет 3. На каждой странице будет разное содержимое.
Re: Урок 125. ViewPager
народ, не ленитесь, смотрите в первую очередь офф доки, там и примере есть и ответы на все вопросы http://developer.android.com/reference/ ... Pager.html
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: Урок 125. ViewPager
Может у меня глаз замылился, но где ты там в примере увидел реализацию UI паттерна "Карусель"?rezak90 писал(а):народ, не ленитесь, смотрите в первую очередь офф доки, там и примере есть и ответы на все вопросы http://developer.android.com/reference/ ... Pager.html
Re: Урок 125. ViewPager
У меня эта страница открыта. Пробую вот так
[syntax=java]
pager = (ViewPager) findViewById(R.id.pager);
pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
pager.addView(getLayoutInflater().inflate(R.layout.two, null));
pager.setAdapter(pagerAdapter);
[/syntax]никаких изменений
[syntax=java]
pager = (ViewPager) findViewById(R.id.pager);
pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
pager.addView(getLayoutInflater().inflate(R.layout.two, null));
pager.setAdapter(pagerAdapter);
[/syntax]никаких изменений
Re: Урок 125. ViewPager
Лично у меня вопрос в не дописать, а в оптимизации перерисовки, чтоб увеличить плавность и скорость отображения.
Re: Урок 125. ViewPager
почему бы тогда не сделать не три а четыре страницы что бы та что справа не перерисовывалась? второй вариант если уж хочется три - на момент скролла повесить прогресс бар который будет закрываться после того когда всё отрисуетсяneoksi писал(а):Лично у меня вопрос в не дописать, а в оптимизации перерисовки, чтоб увеличить плавность и скорость отображения.
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена