Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
1

создание ViewPager

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

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

Добавлено через 14 минут
Забыл сказать,что ViewPager содержит GridView
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2013, 23:26
Ответы с готовыми решениями:

Динамическое создание и заполнение ViewPager
Как во всех читалках реализован перенос текста? Как мне динамически создать WebView и на него...

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

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

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

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

Добавлено через 25 секунд
я не экстрасенс.
0
53 / 53 / 8
Регистрация: 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
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 20:23 6
похоже ViewPager занимает всю активити, вот и не видно под ним ничего, ограничьте его размер.
1
53 / 53 / 8
Регистрация: 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
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
10.01.2013, 23:21 8
wrap_content не накладывает никаких ограничение. wrap_content можно перевести как "возьми себе столько, сколько тебе нужно". match_parent - "возьми все что есть".
0
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
11.01.2013, 12:39  [ТС] 9
Интересно,я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
Спасибо.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
11.01.2013, 20:32 10
Цитата Сообщение от lavan Посмотреть сообщение
я думал,что wrap_content-это, возьми себе столько сколько надо для размещения компонента.
чаще всего так и есть, но не всегда...
0
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 12:36 11
у меня аналогичная ситуация.
если указывать вручную высоту viewpager'а - то все нормально, если же укаызвать wrap_content то viewpager занимает всю область.
но у меня динамически подгужается информация в textview и она может быть разной длинны.
как быть?
0
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 17:49  [ТС] 12
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
18.06.2013, 19:46 13
используйте weight
0
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
18.06.2013, 21:21 14
Цитата Сообщение от lavan Посмотреть сообщение
если textview подгружается в viewpager то добавить scrol. если нет,то размещайте viewpager самым последним
последним - не вариант. нужно именно сверху.
на счет скрола - можно поподробней?
0
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
18.06.2013, 21:36  [ТС] 15
viewpager поддерживает скролинг,поэтому можно задать размер viewpager а если textview все не поместилось отработает скролинг
0
4 / 4 / 1
Регистрация: 15.05.2012
Сообщений: 63
19.06.2013, 13:13 16
можно ли пример кода?
просто обернуть мою разметку ScrollView?
0
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
19.06.2013, 17:39  [ТС] 17
XML
1
2
3
4
5
6
7
8
9
<ScrollView 
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">
  <YourLayout>
  <View1/>
 <View2/>
</YourLayout>
</ScrollView>
0
19.06.2013, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2013, 17:39
Помогаю со студенческими работами здесь

ViewPager
Всем. Да я недалекий и тупой, уже дня три не могу никак понять :wall: Есть ViewPager...

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

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

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


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru