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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
#1

создание ViewPager - Программирование Android

09.01.2013, 23:26. Просмотров 1537. Ответов 16
Метки нет (Все метки)

здравствуйте,возник вопрос по ViewPager. Не получается добавить компоненты после ViewPager, т.е Статический компонент вверху и внизу,а по середине будет ViewPager,который и будет пролистываться? ViewPager получаю с помощью LayoutInfliter.

Добавлено через 14 минут
Забыл сказать,что ViewPager содержит GridView
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 23:26     создание ViewPager
Посмотрите здесь:

Динамическое создание и заполнение ViewPager - Программирование Android
Как во всех читалках реализован перенос текста? Как мне динамически создать WebView и на него вывести текст с переносом на следующую...

ViewPager автодаводка - Программирование Android
Подскажите пожалст ,как можно изменить автодаводку уменьшить или увеличить?

Сохранение состояния ViewPager - Программирование Android
Есть адаптер: public class QuestionFragmentPagerAdapter extends FragmentPagerAdapter { @Override public Fragment getItem(int...

AsyncTask в Fragment и viewPager - Программирование Android
У меня есть ViewPager который состоит из двух листающихся экранов, есть код фрагмента который запускается в этом viewPager (как правильно...

viewPager onCreate method - Программирование Android
Всем здрасьте, возник следующий вопрос по ViewPager: Создаю viewPager и заполняю его в методе OnCreate главной активити: ...

Изменение Activity из ViewPager - Программирование Android
Добрый день! Есть viewPager, который принимает на вход 3 фрагментов и работает с ними. Активики, в которой расположен viewPager,...

ViewPager обновление фрагментов - Программирование Android
Использую viewpager имеет три фрагмента. Как обновлять данные для второго фрагмента с первого фрагмента. И наоборот. Метод ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 00:43     создание ViewPager #2
Цитата Сообщение от lavan Посмотреть сообщение
Не получается добавить компоненты после ViewPager
значит что-то делаете неправильно.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
10.01.2013, 12:17  [ТС]     создание ViewPager #3
ну так расскажите как правильно!для этого и был задан вопрос!
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 16:01     создание ViewPager #4
чтобы сказать что вы сделали неправильно, мне нужно увидеть что вы сделали вообще.

Добавлено через 25 секунд
я не экстрасенс.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
10.01.2013, 19:14  [ТС]     создание ViewPager #5
Вы правы. Имею 2 варианта с LayoutInflater и без
1. С LayoutInflater
main.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:id="@+id/ll"
    >
     <TextView 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Static text"
        android:id="@+id/tvp2"
        />
</LinearLayout>
Откуда беру компоненты
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
>
    <android.support.v4.view.ViewPager
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:id="@+id/v4"
        android:background="@color/bckg"
        />
</LinearLayout>
для GridView
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="@drawable/rct"
     >
    
    <GridView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:id="@+id/gvp"
    />
    <GridView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:id="@+id/gvc"
    />
    <GridView 
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:id="@+id/gvf"
    />
</LinearLayout>
для кнопок
XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" 
    android:id="@+id/bll"
    >
    
   <Button 
         android:layout_width="match_parent"
         android:layout_weight="1"
         android:layout_height="wrap_content"
         android:text="@string/go"
         android:onClick="onClick"
         android:id="@+id/bg"
         />
     <Button 
         android:layout_width="match_parent"
         android:layout_weight="1"
         android:layout_height="wrap_content"
         android:text="@string/went"
         android:onClick="onClick"
         android:id="@+id/bw"
         />
</LinearLayout>
И java
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
public class MainActivity extends Activity {
    private LayoutInflater         infliter;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        infliter = LayoutInflater.from(this);
        initViewPager();
        addButton();
    }
    
    private void initViewPager(){
        LinearLayout ll = (LinearLayout)MainActivity.this.findViewById(R.id.ll);
        View v = (View)infliter.inflate(R.layout.padapter2, null);
        ViewPager vp = (ViewPager)v.findViewById(R.id.v4);
        List<View> lv = new ArrayList<View>();
        lv.add(setGridView(R.id.gvp));
        lv.add(setGridView(R.id.gvc));
        lv.add(setGridView(R.id.gvf));
        WPageAdapter wp = new WPageAdapter(lv);
        vp.setAdapter(wp);
        vp.setCurrentItem(1);
        View vv = (View)infliter.inflate(R.layout.button_item, null);
        ll.addView(v);
        ll.addView(vv);
        
        
    }
    
    private GridView setGridView(int id){
        View v = (View)infliter.inflate(R.layout.itemgv,null);
        GridView gv = (GridView)v.findViewById(id);
        gv.setAdapter(new WGrid(this));
        gv.setNumColumns(5);
        gv.setVerticalSpacing(5);
        
        gv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                Toast.makeText(MainActivity.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });
        return gv;
    }
    
    private void addButton() {
        View v = (View)infliter.inflate(R.layout.button_item, null);
        LinearLayout ll = (LinearLayout)MainActivity.this.findViewById(R.id.ll);
        ll.addView(v);
    }
 
}
В адаптерах переопределены только обязательные методы
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 20:23     создание ViewPager #6
похоже ViewPager занимает всю активити, вот и не видно под ним ничего, ограничьте его размер.
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
10.01.2013, 20:59  [ТС]     создание ViewPager #7
так он по высоте ограничен
XML
1
2
3
4
 <android.support.v4.view.ViewPager
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        />
или этого не достаточно?
Вы были правы, можете объяснить почему не сработало ограничение
XML
1
android:layout_height="wrap_content"
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 23:21     создание ViewPager #8
wrap_content не накладывает никаких ограничение. wrap_content можно перевести как "возьми себе столько, сколько тебе нужно". match_parent - "возьми все что есть".
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
11.01.2013, 12:39  [ТС]     создание ViewPager #9
Интересно,я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
Спасибо.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.01.2013, 20:32     создание ViewPager #10
Цитата Сообщение от lavan Посмотреть сообщение
я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
чаще всего так и есть, но не всегда...
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 12:36     создание ViewPager #11
у меня аналогичная ситуация.
если указывать вручную высоту viewpager'а - то все нормально, если же укаызвать wrap_content то viewpager занимает всю область.
но у меня динамически подгужается информация в textview и она может быть разной длинны.
как быть?
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 17:49  [ТС]     создание ViewPager #12
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.06.2013, 19:46     создание ViewPager #13
используйте weight
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 21:21     создание ViewPager #14
Цитата Сообщение от lavan Посмотреть сообщение
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
последним - не вариант. нужно именно сверху.
на счет скрола - можно поподробней?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 21:36     создание ViewPager
Еще ссылки по теме:

Обновление содержимого ViewPager - Программирование Android
Есть ли какие-нибудь способы обновить содержимое всех страницы ViewPager'а? Придумал только походить пару раз туда обратно по всем...

Задать позицию ListView в ViewPager - Программирование Android
Добрый вечер! Столкнулся с проблемой обновления ListView, после нажатия на кнопку происходит обновление адаптера но элементы ListView...

Обновление фрагмента с ListView в ViewPager - Программирование Android
Есть класс фрагмента, который заполняет адаптер: public class PageFragment extends Fragment implements LoaderCallbacks&lt;Cursor&gt; { ...

Navigation Drawer или ViewPager - Программирование Android
Привет! Обращаюсь за советом. С помощью чего можно сделать аналог Navigation Drawer, но так чтобы при его закрытии DrawerLayout...

Не удаляется строка списка во ViewPager? - Программирование Android
на страницах ViewPager есть 2 отдельных ListView (фрагменты), по коду почти одинаковые FirstFragment.java public class FirstFragment...


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

Или воспользуйтесь поиском по форуму:
lavan
51 / 51 / 1
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 21:36  [ТС]     создание ViewPager #15
viewpager поддерживает скролинг,поэтому можно задать размер viewpager а если textview все не поместилось отработает скролинг
Yandex
Объявления
18.06.2013, 21:36     создание ViewPager
Ответ Создать тему
Опции темы

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