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

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

09.01.2013, 23:26. Просмотров 1663. Ответов 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
Как во всех читалках реализован перенос текста? Как мне динамически создать...

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

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

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

ViewPager
Здравствуйте! В приложении использовал пример с Хабра...

ViewPager и Tab
Здравствуйте. Есть приложение на андроид C# (файл проекта в приложении). Он...

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

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

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

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

ViewPager и TextView
В приложении ViewPager и TextView. Все работает. Теперь нужно впихнуть во...

ViewPager Indicator
Здравствуйте! Взял пример с...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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