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

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

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

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

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

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

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

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

Повторное создание фрагмента внутри фрагмента ViewPager - Программирование Android
Доброго времени суток! Использую внутри фрагмента элемент ViewPager, который сам внутри содержит еще два фрагмента-вкладки. При первом...

ViewPager - Программирование Android
Здравствуйте! В приложении использовал пример с Хабра http://habrahabr.ru/post/131889/, однако, не могу понять как при прокрутке экранов...

ViewPager - Программирование Android
Всем. Да я недалекий и тупой, уже дня три не могу никак понять :wall: Есть ViewPager <android.support.v4.view.ViewPager ...

ViewPager - Программирование Android
Помогите пожалуйста. Использую эту фичу в своей программе(пример один и его очень много в поисковике). И столкнулся с проблемой. На...

Правильный ViewPager - Программирование Android
Вообщем все что я сделал прикрепил на картинке. Беда то вот в чем. Ну например я тыкаю пальцем ну и скролирую, а тыкаю то я в кнопку...

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

Добавлено через 25 секунд
я не экстрасенс.
0
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
10.01.2013, 19:14  [ТС] #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);
    }
 
}
В адаптерах переопределены только обязательные методы
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 20:23 #6
похоже ViewPager занимает всю активити, вот и не видно под ним ничего, ограничьте его размер.
1
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
10.01.2013, 20:59  [ТС] #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"
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 23:21 #8
wrap_content не накладывает никаких ограничение. wrap_content можно перевести как "возьми себе столько, сколько тебе нужно". match_parent - "возьми все что есть".
0
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
11.01.2013, 12:39  [ТС] #9
Интересно,я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
Спасибо.
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.01.2013, 20:32 #10
Цитата Сообщение от lavan Посмотреть сообщение
я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
чаще всего так и есть, но не всегда...
0
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 12:36 #11
у меня аналогичная ситуация.
если указывать вручную высоту viewpager'а - то все нормально, если же укаызвать wrap_content то viewpager занимает всю область.
но у меня динамически подгужается информация в textview и она может быть разной длинны.
как быть?
0
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 17:49  [ТС] #12
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
0
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.06.2013, 19:46 #13
используйте weight
0
odradek
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 21:21 #14
Цитата Сообщение от lavan Посмотреть сообщение
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
последним - не вариант. нужно именно сверху.
на счет скрола - можно поподробней?
0
lavan
53 / 53 / 1
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 21:36  [ТС] #15
viewpager поддерживает скролинг,поэтому можно задать размер viewpager а если textview все не поместилось отработает скролинг
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2013, 21:36
Привет! Вот еще темы с ответами:

Поворот ViewPager - Программирование Android
Как повернуть ViewPager на 90 градусов при заблокированной портретной ориентации? Применяю RotateAnimation, но анимация не срабатывает до...

ViewPager Indicator - Программирование Android
Здравствуйте! Взял пример с https://github.com/JakeWharton/Android-ViewPagerIndicator и хотел бы объединить табы с индикатором который...

GridView и ViewPager - Программирование Android
Всем привет. У меня есть GridView, в котором можно, конечно же, тыкать на пункты списка и открывать новую активити: например,...

ViewPager и ListView - Программирование Android
Вообще пытаюсь сделать пролистывающиеся редактируемые списки. Для этого использую ViewPager и ListView. Так как ViewPager использует...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
18.06.2013, 21:36
Ответ Создать тему
Опции темы

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