Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
DaemonXXX
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 5
#1

ViewPager внутри ListView, Как вставить? - Программирование Android

26.07.2013, 21:21. Просмотров 1266. Ответов 9
Метки нет (Все метки)

Здравствуйте. Есть задача, внутри ListView сделать айтемы, которые содержат ViewPager
Вот фрагмент кода, в котором я пытаюсь просто расместить один элемент ViewPager в одном айтеме ListView, который содержит страничку с TextView

Однако ничего не показывается, хотя все функции успешно отрабатывают и вызываются перегруженые.
Если в это код в адаптере листа в методе getView-попытаться вставить другой компонент, вместо ViewPager (например ImageView, TextView)-то все отображается.
Не могу понять-в чем дело.

Вот фрагмент кода, в котором показана реализация метода getView адаптера для ListView и адаптера для ViewPager
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
@Override
public View getView(int position, View convertView, ViewGroup parent) {
 
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.product_info_list_item,
parent, false);
}
 
ViewPager viewPager = (ViewPager) view.findViewById(R.id.view_pager);
viewPager.setAdapter(new SamplePagerAdapter());
return view;
}
 
public class SamplePagerAdapter extends PagerAdapter{
 
@Override
public Object instantiateItem(ViewGroup container, int position){
View imview = lInflater.inflate(R.layout.info_image, null);
((ViewPager) container).addView(imview);
return imview;
}
 
@Override
public void destroyItem(ViewGroup container, int position, Object object){
((ViewPager) container).removeView((View) object);
}
 
@Override
public int getCount(){
return 1;
}
 
@Override
public boolean isViewFromObject(View view, Object object){
return view.equals(object);
}
 
@Override
public void finishUpdate(View arg0){
}
 
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1){
}
 
@Override
public Parcelable saveState(){
return null;
}
 
@Override
public void startUpdate(View arg0){
}
}
info_image.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dip"
android:background="#ddd">
 
<TextView
android:id="@+id/text_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:background="#888"
android:gravity="center"
android:text="eeeeeeeeeeeeee"
android:textColor="#fff"
android:textSize="30dip" />
 
</RelativeLayout>
product_info_list_item.xml

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
android:id="@+id/products_info_item_back"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
 
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
 
</LinearLayout>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
26.07.2013, 22:41     ViewPager внутри ListView, Как вставить? #2
зачем такое извращение?
DaemonXXX
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 5
26.07.2013, 23:21  [ТС]     ViewPager внутри ListView, Как вставить? #3
Цитата Сообщение от V0v1k Посмотреть сообщение
зачем такое извращение?
Подскажи лучший вариант? Как мне в каждой строке списка отображать ViewPager? К примеру что б в в каждой срочке пролистывать фото, которые относятся к содержимому?

Может ,конечно подход не правильный, но как сделать по другому?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
26.07.2013, 23:43     ViewPager внутри ListView, Как вставить? #4
Цитата Сообщение от DaemonXXX Посмотреть сообщение
Подскажи лучший вариант? Как мне в каждой строке списка отображать ViewPager? К примеру что б в в каждой срочке пролистывать фото, которые относятся к содержимому?
А нельзя сделать по клику на item чтоб открывался ViewPager с содержимым?
DaemonXXX
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 5
26.07.2013, 23:59  [ТС]     ViewPager внутри ListView, Как вставить? #5
Ребята, вы мне обьясните-проблема не решаема? Я понимаю, что можно найти тысячу вариантов. Но почему не работает такой подход? Ведь это нормальное поведение двух адаптеров!
Код элементарный Я лишь привел для примера. Просто обьясните-не будет работать? Имено потому, что ViewPager? Ведь для других-работает компонентов кастомный лист адаптер. я Спокойно отображаю лайауты с различнами компонентами(и кнопками внутри и картинки и текст).
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
27.07.2013, 00:25     ViewPager внутри ListView, Как вставить? #6
На первый взгляд код верный, возможно в пейджере ничего нет, вот и не отображает
DaemonXXX
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 5
27.07.2013, 00:32  [ТС]     ViewPager внутри ListView, Как вставить? #7
я же дал всего 2 xml файла) в пейджере должен быть TextView. да я даже бекграунд ставил пейджеру-белый, и минимальный размер задавал(хотя не знаю-если ничего нет-его самого видно? я андроид только 2-ю неделю учу)
Тот код, что я дал-90% там только пару функций адаптера листвью дописать) Т..е. код примитвные. Причем я пытался делать ViewPager на активити-с таким же содержимым-все отображается.
Ладно-черт с ним моим кодом. Как вообще тогда правильно так сделать, что б отобразить ViewPager на ListView
покажите тогда рабочий код. Или не все можно отображать в адаптере ListView?
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
27.07.2013, 01:13     ViewPager внутри ListView, Как вставить? #8
В дебаге, показывает, что в листе все есть, надо внимательно смотреть как в пейджере отобразить вьюв, вы пробовали без листа в пейджер что нибудь вывести?

Добавлено через 5 минут
Мне не очень ваш пейджер адаптер нравится
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class SimplePagerAdapter extends PagerAdapter {
 
    List<View> pages = null;
 
    public SimplePagerAdapter(List<View> pages){
        this.pages = pages;
    }
 
    @Override
    public Object instantiateItem(View collection, int position){
        View v = pages.get(position);
        ((ViewPager) collection).addView(v, 0);
        return v;
    }
 
    @Override
    public void destroyItem(View collection, int position, Object view){
        ((ViewPager) collection).removeView((View) view);
    }
 
    @Override
    public int getCount(){
        return pages.size();
    }
 
    @Override
    public boolean isViewFromObject(View view, Object object){
        return view.equals(object);
    }
 
    @Override
    public void finishUpdate(View arg0){
    }
 
    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1){
    }
 
    @Override
    public Parcelable saveState(){
        return null;
    }
 
    @Override
    public void startUpdate(View arg0){
    }
}


Добавлено через 50 секунд
тем не менее даже с моим вариантом, глухо

Добавлено через 12 минут
Если получится решить проблему, отпишитесь пожалуйста
DaemonXXX
0 / 0 / 0
Регистрация: 26.07.2013
Сообщений: 5
27.07.2013, 09:04  [ТС]     ViewPager внутри ListView, Как вставить? #9
Тот пример, что вы дали-я пробывал. Я взял его с хабра. Просто я еще изменил.Ну мало ли, может контейнер где разрушался или еще что. Решил сделать примитивно и напрямую, что б проверить. Я пробывал без листа-конечно же )) Все работает. Если делать просто в создании активити. Буду дальше искать проблему.

Да и у меня дебагер показал-все работает. И все функции вызываются -и создание и , типа, апдейт пейджера проходит.
Конечно же отпишусь, если найду ответ.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2015, 02:33     ViewPager внутри ListView, Как вставить?
Еще ссылки по теме:
Ошибка при инициализации ListView в ViewPager Android
Android Подвисает ViewPager с фрагментами внутри
ViewPager.setCurrentItem() внутри LoaderCallbacks.onLoadFinished() Android
Android Как вставить резделители в ListView?
Android Как обратиться к элементу (button) внутри пункта списка (ListView)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
GensJava
0 / 0 / 0
Регистрация: 22.06.2014
Сообщений: 5
04.02.2015, 02:33     ViewPager внутри ListView, Как вставить? #10
Все работает, в Layout размер поменять надо вручную.
Yandex
Объявления
04.02.2015, 02:33     ViewPager внутри ListView, Как вставить?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru