Урок 125. ViewPager

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

Re: Урок 125. ViewPager

Сообщение KamiSempai » 16 янв 2015, 18:41

khirh писал(а):Подскажите начинающему,пожалуйста

пытаюсь поместить ListView на ViewPager. Но не могу понять какой указать Context при создании ArrayAdapter?

ArrayAdapter<String> lvAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list)
- ругается что не может найти конструктора под такой вызов
this - Это что?
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

khirh
Сообщения: 5
Зарегистрирован: 30 дек 2014, 00:06

Re: Урок 125. ViewPager

Сообщение khirh » 16 янв 2015, 18:44

Получается ччто fragment. Но это не работает, я как раз и спрашиваю что там должно быть

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 125. ViewPager

Сообщение doter.ua » 16 янв 2015, 23:01

khirh писал(а):Получается ччто fragment. Но это не работает, я как раз и спрашиваю что там должно быть
getActivity()
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

khirh
Сообщения: 5
Зарегистрирован: 30 дек 2014, 00:06

Re: Урок 125. ViewPager

Сообщение khirh » 16 янв 2015, 23:04

уже сам нашел )
нужно было получить все окно через inflater.inflate(R.layout.fragment, null); и от него взять getContext

view = inflater.inflate(R.layout.fragment, null);
lvAdapter = new ArrayAdapter<String>(view.getContext(), android.R.layout.simple_list_item_1, MainActivity.lvStrList);

khirh
Сообщения: 5
Зарегистрирован: 30 дек 2014, 00:06

Re: Урок 125. ViewPager

Сообщение khirh » 17 янв 2015, 00:29

prometey писал(а):
prometey писал(а):
finberg писал(а):adapter относится к ListView или ViewPager?
Использовал и к ListView и к ViewPager. Я вот уже думаю, может надо как то убить фрагмент в котором находиться список, а потом его пересоздать? Проблема в том, что ViewPager хранит в памяти как минимум три фрагмента - открытый, предыдущий и следующий за открытым.
Все, разобрался)
Теперь и у меня аналогичная проблема. Не могу заставить ListView отрисоваться. А если повернуть экран или подвигать страницы - то появляется.
Поделись плиз, решением?

vanbios
Сообщения: 7
Зарегистрирован: 24 янв 2015, 20:27

Re: Урок 125. ViewPager

Сообщение vanbios » 24 янв 2015, 20:34

ребята, столкнулся с такой проблемой:
использовал SwipeRefreshLayout ("потянул вниз и отпустил") для обновления содержимого ViewPager (данные из интернета)
все работает отлично, кроме одного:
теперь стало сложно перелистывать страницы, нужно аккуратно вести от начала до конца, чтобы получилось
раньше это делалось легким движением пальца
может, кто-то в курсе, можно как-то устранить эту неприятность? спасибо!

18f46k20
Сообщения: 14
Зарегистрирован: 09 апр 2014, 00:22

Re: Урок 125. ViewPager

Сообщение 18f46k20 » 24 янв 2015, 21:23

А вмдеоурок есть по listPage?? Для начинающего все равно много чего не ясно.

CaneOnore
Сообщения: 2
Зарегистрирован: 04 фев 2015, 19:57

Re: Урок 125. ViewPager

Сообщение CaneOnore » 04 фев 2015, 20:03

Добрый день, у меня пара вопросов:
1. Существует ли способ вывода с помощью ViewPager фрагментов, созданных на основе последних библиотек, а не библиотек поддержки?
2. Как организовать возможность "листания" фрагментов, без использования библиотек поддержки?

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 125. ViewPager

Сообщение klblk » 05 фев 2015, 07:14

CaneOnore писал(а):Добрый день, у меня пара вопросов:
1. Существует ли способ вывода с помощью ViewPager фрагментов, созданных на основе последних библиотек, а не библиотек поддержки?
2. Как организовать возможность "листания" фрагментов, без использования библиотек поддержки?
сам класс ViewPager находится в support библиотеке. Если не хотите его использовать, то придется городить свой. Но я не понимаю какой в этом смысл. Чем плоха библиотека?

"последних библиотек, а не библиотек поддержки" - что тут имелось ввиду?

CaneOnore
Сообщения: 2
Зарегистрирован: 04 фев 2015, 19:57

Re: Урок 125. ViewPager

Сообщение CaneOnore » 05 фев 2015, 17:39

Уже разобрался, проблема была в том, что ViewPager относится к библиотекам поддержки v4, а адаптеры из этой библиотеки не умеют работать с фрагментами из последних библиотек, как следствие нужно использовать фрагменты из библиотек v4 а это ведет к использованию активностей из библиотек v4, а это накладывает целый ряд ограничений на возможности разработки. Дело в том что у меня по умолчанию не были подключены библиотеки v13, если их подключить и использовать адаптеры, которые эта библиотека содержит, то все работает нормально, эти адаптеры умеют работать с фрагментами из API21

michael512
Сообщения: 7
Зарегистрирован: 16 фев 2015, 08:41

Re: Урок 125. ViewPager

Сообщение michael512 » 16 фев 2015, 08:57

Здравствуйте,
Как назначить listener (OnClick, OnLongClick) элементам, находящихся на странице внутри ViewPager?
На активити расположены Spinner и ViewPager
В одном из layout находится куча чекбоксов на ScrollView и этих layout тоже куча, но речь не об этом, нужно, чтобы при долгом тапе на тексте чекбокса появлялась активность с текстом

Класс в активности слоя не работает, интерфейс класса не работает
Попытка создать прослушивателя в главном классе заканчивается крахом
Вот этот код не работает, он находится в классе активности, на котором прописан ViewPager:

CompoundButton btn = (CompoundButton) findViewById(R.id.checkbox1);
OnClickListener listener = new OnClickListener(){
@Override
public void onClick(View v) {
Log.d(TAG,"Click!");
// здесь вызываем активность с текстом
}};
if (btn != null)
btn.setOnClickListener(listener);

Наверное этот урок надо дополнить примерами обработчиков, для элементов управления, находящихся во фрагментах и слоях, т.к. в инете довольно много народу интересуется

vanbios
Сообщения: 7
Зарегистрирован: 24 янв 2015, 20:27

Re: Урок 125. ViewPager

Сообщение vanbios » 16 фев 2015, 10:39

ребята, подскажите, есть ли возможность к ViewPager прикрепить ScrollView и непосредственно в него вставлять фрагменты?
как бы это правильно реализовать? спасибо!

michael512
Сообщения: 7
Зарегистрирован: 16 фев 2015, 08:41

Re: Урок 125. ViewPager

Сообщение michael512 » 16 фев 2015, 11:26

michael512 писал(а): Как назначить listener (OnClick, OnLongClick) элементам, находящихся на странице внутри ViewPager?
Всё, разобрался, надо было делать фрагментами, там есть механизмы более продвинутого обмена
Спс внимание :D

michael512
Сообщения: 7
Зарегистрирован: 16 фев 2015, 08:41

Re: Урок 125. ViewPager

Сообщение michael512 » 20 фев 2015, 02:15

vanbios писал(а):ребята, подскажите, есть ли возможность к ViewPager прикрепить ScrollView и непосредственно в него вставлять фрагменты?
как бы это правильно реализовать? спасибо!
А как ты потом вставишь фрагмент в ScrollView ? скорее надо сначала кинуть ScrollView, потом LinearLayout на него, а потом накидать в него ViewPagers,
но я не понимаю, зачем это. если фрагмент предполагается длинным, надо на Layout фрагмента рисовать ScrollView. Думается, неправильно поставлена задача, может тебе нужна вертикальная анимация ViewPager?

vanbios
Сообщения: 7
Зарегистрирован: 24 янв 2015, 20:27

Re: Урок 125. ViewPager

Сообщение vanbios » 20 фев 2015, 19:37

michael512 писал(а):
vanbios писал(а):ребята, подскажите, есть ли возможность к ViewPager прикрепить ScrollView и непосредственно в него вставлять фрагменты?
как бы это правильно реализовать? спасибо!
А как ты потом вставишь фрагмент в ScrollView ? скорее надо сначала кинуть ScrollView, потом LinearLayout на него, а потом накидать в него ViewPagers,
но я не понимаю, зачем это. если фрагмент предполагается длинным, надо на Layout фрагмента рисовать ScrollView. Думается, неправильно поставлена задача, может тебе нужна вертикальная анимация ViewPager?
ну вот если взять, к примеру, приложения Twitter или KateMobile:
там ViewPager, и на каждой вкладке можно отдельно обновлять инфу с помощью SwipeRefreshLayout.
и даже если по логике посудить, фрагмент накладывается на ViewPager. если вверху в фрагменте изначально не задать необходимый отступ, он налезет на заголовки. не думаю, что это в принципе допустимо при написании правильного приложения.
было бы логично помещать фрагмент в некое строго отведенное для него место на главной активити.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 125. ViewPager

Сообщение doter.ua » 20 фев 2015, 19:58

michael512 писал(а):
michael512 писал(а): Как назначить listener (OnClick, OnLongClick) элементам, находящихся на странице внутри ViewPager?
Всё, разобрался, надо было делать фрагментами, там есть механизмы более продвинутого обмена
Спс внимание :D
С вертикальным скролом еще можно пошаманить, а вот горизонтальный будет мешать перелистыванию, так что горизонтальный лучше отключать.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

michael512
Сообщения: 7
Зарегистрирован: 16 фев 2015, 08:41

Re: Урок 125. ViewPager

Сообщение michael512 » 24 фев 2015, 13:18

doter.ua писал(а):
michael512 писал(а):
michael512 писал(а): Как назначить listener (OnClick, OnLongClick) элементам, находящихся на странице внутри ViewPager?
Всё, разобрался, надо было делать фрагментами, там есть механизмы более продвинутого обмена
Спс внимание :D
С вертикальным скролом еще можно пошаманить, а вот горизонтальный будет мешать перелистыванию, так что горизонтальный лучше отключать.
Вы ответили не на тот вопрос :)

user32338
Сообщения: 2
Зарегистрирован: 13 мар 2015, 21:46

Re: Урок 125. ViewPager

Сообщение user32338 » 13 мар 2015, 21:51

Я конечно дико извиняюсь, может я и не туда написал но у меня вопрос
я сделал себе ViewPager динамическая подгрузка все ок
но работает эта фигня только с прокрутной вправо
т.е. если я постоянно добавляю данные в конец (т.е. новые странички в конец)
а вот если мне надо добавлять в начало, эта зараза не хочет работать
что делать?
есть какое-то обходное решение мне ну очень хочется крутить вправо и получать новые данные...
(P.S. если все данные были бы сразу известны все было бы хорошо)

Svetlana
Сообщения: 3
Зарегистрирован: 17 мар 2015, 17:05

Re: Урок 125. ViewPager

Сообщение Svetlana » 17 мар 2015, 17:23

Здравствуйте!
Вот такой вопрос: допустим, создали ViewPager с 3мя страницами. На одной из них хотим выгрузить в ListView данные с базы, НО! Но не используя ArrayAdapter, а используя SimpleCursorAdapter (136 урок). Возможно ли использование разных адаптеров в одном MainActivity (который extends FragmentActivity)?
У меня почему-то не получается, программно ошибок не выдает, а в эмуляторе выдает.
Например:

Код: Выделить всё

 //Создаем страницы
    pager = (ViewPager) findViewById(R.id.pager);
    pagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
    pager.setAdapter(pagerAdapter);
    pager.setCurrentItem(1);
     
    //СТРАНИЦА ПЕРВАЯ
    String[] from = new String[] { E_NAME };
    int[] to = new int[] { R.id.lvSS };
    scAdapter = new SimpleCursorAdapter(this, R.layout.item, null, from, to, 0);
    lvSS = (ListView) findViewById(R.id.lvSS);
    lvSS.setAdapter(scAdapter);
где E_NAME - поле таблицы, объявлено в начале
lvSS - ListView, тоже объявлено

так вот, когда убираю последнюю строку ( // lvSS.setAdapter(scAdapter); ), то программка запускается и работает без проблем. Стоит добавить последнюю строку (lvSS.setAdapter(scAdapter);), то эмулятор выдает ошибку.

Хелп :)
Последний раз редактировалось Svetlana 18 мар 2015, 10:38, всего редактировалось 1 раз.

Аватара пользователя
klblk
Сообщения: 1097
Зарегистрирован: 18 окт 2012, 11:17
Откуда: г. Красноярск

Re: Урок 125. ViewPager

Сообщение klblk » 18 мар 2015, 08:21

Svetlana писал(а):...
0) оформляйте код на форуме правильно
1) нужен лог ошибки
2) Где находится ваш ListView? Если во фрагменте, то и искать его нужно там, а не в Activity. (в данном случае это догадка и без п.1, вероятно ложная)

Ответить