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

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

Войти
Регистрация
Восстановить пароль
 
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
#1

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

31.05.2016, 09:24. Просмотров 386. Ответов 9
Метки нет (Все метки)

Здравствуйте, у меня такая проблема не могу сделать прокрутку списка вместе с экраном, во многих источниках пишется что 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>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2016, 09:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Прокрутка списка вместе с экраном (Программирование Android):

Работа с разделенным экраном - Программирование Android
Добрый вечер! Задавал вопрос про разделение экрана, подсказали все получилось, но теперь возник следующий вопрос. Хочу на первой половине...

Подключение SD карты вместе с экраном - AVR
Нужно подключить SD карту к atmega8, и экран от nokia 5110. Как правильно подключить SD карту? Как правильно ее запитать учитывая что...

Прокрутка списка брендов - 1С Битрикс
есть список брендов. он очень длиный и не умещается в экран. как сделать, чтобы блок был в пределах экрана с прокруткой? вот код: ...

Прокрутка списка пальцем - JavaScript
Всем привет! Как можно сделать прокрутку списка(div элемента) пальцем на событиях mouseup mousedown. Тоесть как на тач девайсах скроллинг...

Автоматическая прокрутка списка DataGridView - C#
Необходимо,чтобы при добавлении новых данных в список, мы видели новые, т.е добавляемые данные....Как это можно реализовать....У меня есть...

Автоматическая прокрутка списка Listview - C# WPF
Необходимо,чтобы при добавлении новых данных в список, мы видели новые, т.е добавляемые данные....Как это можно реализовать, может это в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
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>
0
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>
0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
31.05.2016, 12:54 #4
над скрол вью есть еще обьекты?
0
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.
0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
31.05.2016, 13:07 #6
нет. адаптер не при делах. попробуйте добавить какойто лайаут с текствью надо скролл вью

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

Добавлено через 1 минуту
вот тут есть не плохой пример
http://www.androidhub4you.com/2014/0...iew-issue.html
0
Timur_St
0 / 0 / 0
Регистрация: 13.05.2016
Сообщений: 17
31.05.2016, 14:32  [ТС] #7
Сделал как вы сказали,добавил лайфут с TextView над скролл, не помогло.
Лист не должен прокручиваться, если он не влезает в экран то должен прокручиваться экран а не лист.
0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
31.05.2016, 14:35 #8
а. нон скролабл лист надо сделать
0
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 большое спасибо за советы
0
shavuz
106 / 112 / 21
Регистрация: 29.01.2014
Сообщений: 554
01.06.2016, 09:49 #10
не за что. рад был попытатсья помочь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2016, 09:49
Привет! Вот еще темы с ответами:

Прокрутка внутри списка в низ и обратно - jQuery
Здравствуйте, я уже в который день пытаюсь реализовать внутри списка прокрутку, но не то что нужно выходить. Вот ссылка на картинку...

Вычленение n-го элемента из заданного списка и вывод 2х его соседей вместе с ним - Haskell
Есть вычисление n-го элемента из заданного списка s (1, h:t) = h s (n, h:t) = s (n - 1, t) Нужно чтобы он еще выводил 2 соседних...

Запуск ПК, а вместе с ним и google chrome вместе с вкладкой akisho - Удаление вирусов
Сначала была стартовая страница time to read, и поиск go search, потом поисковик был майла. После нескольких манипуляций удалось избавиться...

Не работают вместе 2 скрипта вместе - jQuery
Добрый день! подскажите как заставить работать эти 2 скрипта вместе? Работают только по отдельности $(document).ready(function(){ ...


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

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

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