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

Прокрутка списка вместе с экраном - Android

Войти
Регистрация
Восстановить пароль
 
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
31.05.2016, 09:24     Прокрутка списка вместе с экраном #1
Здравствуйте, у меня такая проблема не могу сделать прокрутку списка вместе с экраном, во многих источниках пишется что ListView нельзя вкладывать в ScrollView и я не знаю как сделать по другому. Пункты в ListView у меня добавляются динамически через EditText. Если ListView выносить за ScrollView то тогда экран стоит на месте а список прокручивается. Кто знает как сделать чтобы экран прокручивался вместе с ListView, подскажите пожалуйста? вот XML код:

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
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="ru.timurstarchenko.viewpager.MainActivity$PlaceholderFragment">
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/scrollView" >
 
        <RelativeLayout
            android:id="@+id/Rl0"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
 
            <com.mikhaellopez.circularprogressbar.CircularProgressBar
                android:layout_width="130dp"
                android:layout_height="130dp"
                android:id="@+id/prBar"
                app:cpb_background_progressbar_color= "#F44336"
                app:cpb_background_progressbar_width="7dp"
                app:cpb_progressbar_color="#54d127"
                app:cpb_progressbar_width="12dp"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginTop="75dp" />
 
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="получено"
                android:id="@+id/textViewGet"
                android:layout_alignTop="@+id/prBar"
                android:layout_marginLeft="20dp"/>
 
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="потрачено"
                android:id="@+id/textViewSpent"
                android:layout_alignBottom="@+id/prBar"
                android:layout_marginLeft="20dp"/>
 
            <android.support.design.widget.FloatingActionButton
                app:backgroundTint="@color/green"
                android:id="@+id/btn"
                android:tint="@color/white"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_kzt"
                android:text="@string/kzt"
                android:layout_alignBottom="@+id/prBar"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_marginBottom="-25dp"/>
 
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageView"
                android:src="@android:drawable/ic_menu_close_clear_cancel"
                android:layout_alignBottom="@+id/textViewGet"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                android:layout_marginBottom="-10dp"
                android:layout_marginRight="23dp"/>
 
            <RelativeLayout
                android:id="@+id/Rl"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/gray"
                android:layout_marginTop="250dp">
 
                <at.markushi.ui.CircleButton
                    android:layout_width="64dip"
                    android:layout_height="64dip"
                    android:tint="@color/white"
                    app:cb_color="@color/green"
                    app:cb_pressedRingWidth="8dip"
                    android:layout_marginLeft="59dp"
                    android:layout_marginStart="59dp"
                    android:src="@android:drawable/ic_input_add"
                    android:id="@+id/addContent"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true" />
 
                <at.markushi.ui.CircleButton
                    android:layout_width="64dip"
                    android:layout_height="64dip"
                    app:cb_color="@color/white"
                    app:cb_pressedRingWidth="8dip"
                    android:tint="@color/red"
                    android:id="@+id/minus"
                    android:layout_marginRight="58dp"
                    android:layout_marginEnd="58dp"
                    android:src="@drawable/abc_seekbar_track_material"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignParentEnd="true" />
 
                <ListView
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:id="@+id/listView"
                    android:scrollbars="none"
                    android:layout_marginTop="60dp"/>
 
            </RelativeLayout>
 
        </RelativeLayout>
    </ScrollView>
</RelativeLayout>
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
31.05.2016, 11:12     Прокрутка списка вместе с экраном #2
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
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
          
вот так у меня работает. 
   <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView2"
        android:layout_gravity="center_horizontal" >
  <LinearLayout
                android:orientation="vertical"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/commentsLayout">
 
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Comments"
                    android:id="@+id/commentsTitle"
                    android:layout_marginLeft="10dp"
                    android:textStyle="bold" />
 
                <ListView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/comentList"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp" />
 
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="textMultiLine"
                    android:ems="10"
                    android:id="@+id/commentText"
                    android:textColorHint="@color/grey_hint"
                    android:layout_marginLeft="10dp"
                    android:layout_marginRight="10dp" />
 
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Add comment"
                    android:id="@+id/btnAddComment"
                    android:layout_gravity="center"
                    android:password="false"
                    android:layout_marginBottom="10dp" />
            </LinearLayout>
        </LinearLayout>
 
    </ScrollView>
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
31.05.2016, 12:48  [ТС]     Прокрутка списка вместе с экраном #3
Cделал похожий пример. ListView обернул в 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
26
27
28
29
30
31
32
33
34
35
36
37
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView"
        android:layout_gravity="center_horizontal">
 
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/editTextSum" />
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/editTextComment" />
 
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Добавить"
                android:id="@+id/button2"
                android:layout_gravity="center_horizontal" />
 
            <ListView
                android:id="@+id/lvSimple"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                >
            </ListView>
        </LinearLayout>
    </ScrollView>
</LinearLayout>
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
31.05.2016, 12:54     Прокрутка списка вместе с экраном #4
над скрол вью есть еще обьекты?
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
31.05.2016, 12:57  [ТС]     Прокрутка списка вместе с экраном #5
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.viewpagertest.MainActivity"
    android:orientation="vertical">
 
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/scrollView"
        android:layout_gravity="center_horizontal">
 
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/editTextSum" />
 
            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/editTextComment" />
 
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Добавить"
                android:id="@+id/button2"
                android:layout_gravity="center_horizontal" />
 
            <ListView
                android:id="@+id/lvSimple"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                >
            </ListView>
        </LinearLayout>
    </ScrollView>
</LinearLayout>
может дело в адапторе? я использую SimpleAdapter.
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
31.05.2016, 13:07     Прокрутка списка вместе с экраном #6
нет. адаптер не при делах. попробуйте добавить какойто лайаут с текствью надо скролл вью

Добавлено через 1 минуту
а. а лист вью должен быть скролабл? или вам не нужно чтоб он листался?

Добавлено через 1 минуту
вот тут есть не плохой пример
http://www.androidhub4you.com/2014/0...iew-issue.html
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
31.05.2016, 14:32  [ТС]     Прокрутка списка вместе с экраном #7
Сделал как вы сказали,добавил лайфут с TextView над скролл, не помогло.
Лист не должен прокручиваться, если он не влезает в экран то должен прокручиваться экран а не лист.
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
31.05.2016, 14:35     Прокрутка списка вместе с экраном #8
а. нон скролабл лист надо сделать
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
01.06.2016, 09:47  [ТС]     Прокрутка списка вместе с экраном #9
все получилось, нужно было добавить в Java метод
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        // pre-condition
        return;
    }
    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight
            + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);}
и потом вызвать этот метод после добавления адаптера и указать в нем свой лист
Java
1
setListViewHeightBasedOnChildren(list);
только тогда лист стал прокручивался вместе с экраном, shavuz большое спасибо за советы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2016, 09:49     Прокрутка списка вместе с экраном
Еще ссылки по теме:

Android Прокрутка по горизонтали и по вертикали одновременно
Android Работа с разделенным экраном
Прокрутка и раскрывающийся список Android
Android Прокрутка макета в Android Studio
Автоматическая прокрутка ScrollView Android

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

Или воспользуйтесь поиском по форуму:
shavuz
69 / 75 / 12
Регистрация: 29.01.2014
Сообщений: 347
01.06.2016, 09:49     Прокрутка списка вместе с экраном #10
не за что. рад был попытатсья помочь
Yandex
Объявления
01.06.2016, 09:49     Прокрутка списка вместе с экраном
Ответ Создать тему
Опции темы

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