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

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

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

Конец ScrollView - Программирование Android

15.05.2016, 16:39. Просмотров 412. Ответов 11
Метки нет (Все метки)

Здравствуйте, уважаемые форумчане?
Есть ли в ScrollView метод, который определяет, что ScrollView сейчас дошел до конца, или метод, возвращающий целое число пройденное от начала? Я вроде нашел метод, возвращающий макс. величину ScrollView getMaxScrollAmount().
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2016, 16:39     Конец ScrollView
Посмотрите здесь:

ScrollView - Программирование Android
Добрый день! Работаю с обычным ScrollView. Получаю что-то типа: Подскажите пожалуйста, можно ли настроить ScrollView, чтобы получить...

ScrollView - Программирование Android
Привет) Работаю со ScrollView у меня есть например 5 изображений, грубо говоря каждое отвечает за свой функционал, как при прокрутке мне...

Listview and scrollview - Программирование Android
Здравствуйте у меня такая проблема. есть LinearLayout в котором чередуется textview и динамический listview. Пролема в том что...

ScrollView в Android 4.0.x - Программирование Android
имею HorizontalScrollView а в нем ScrollView, при прокрутки вниз если уклонится чуток вправо влево перестает скрол по вертикале (вроде тока...

Наложение на ScrollView - Программирование Android
Добрый день. Вот такая проблема, у меня сверху ScrollView лежит еще один блок LinearLayout. Как сделать чтобы в этих блоках...

Промотать ScrollView - Программирование Android
Экран содержит ScrolView, на нем находятся элементы (например кнопки). Можно ли сразу показать не начало ScrollView, а показать нижние...

Отображение ScrollView в LinearLayout - Программирование Android
Привет всем! Вобщем, есть 3 Layout. Две из них не прокручиваются (1, 3) одна должна прокручиваться. ------------ Layout 1 ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
15.05.2016, 17:25     Конец ScrollView #2
вангую....надо сделать подгрузку новых элементов при скроле вниз до конца?
serSeventin
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 76
16.05.2016, 09:13  [ТС]     Конец ScrollView #3
Да!
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
16.05.2016, 09:49     Конец ScrollView #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
проще всего это делать из RecyclerView.Adapter
там есть метод onBindViewHolder в котором обычно заполняются значениями или грузятся картинки в поля холдера
там вот там можно написать примерно следующее, первые три строки - пример, их можно не читать
Java
1
2
3
4
5
6
7
8
9
10
11
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        MovieModel m = movies.get(position); // это пример
        Glide.with(context).load(m.image_urls.cover).into(holder.ivPoster);
        holder.title.setText(m.title);
        // магия тут
        if (position == movies.size() - 1) {
            // вызываем метод догрузки новых айтемов или просто добавляем новые откуда-то
            // после подгрузки новых элементов не забываем вызвать notifyDataSetChanged();
        }
    }
serSeventin
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 76
16.05.2016, 11:15  [ТС]     Конец ScrollView #5
А со SrollView ничего нету, а то этот класс какой-то мудреный, а у меня к сожалению нету времени на его изучение.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.05.2016, 11:32     Конец ScrollView #6
serSeventin, ScrollView очень нетипично и не правильно для этой задачи
serSeventin
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 76
16.05.2016, 13:26  [ТС]     Конец ScrollView #7
Все делал по этому примеру: http://androiddocs.ru/vidzhet-recyclerview-prostoj-primer/, как я понял за отрисовку данных отвечает функция public void onBindViewHolder(ViewHolder holder, int position), но у меня она даже не вызывается, почему так?
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
16.05.2016, 13:37     Конец ScrollView #8
наверное надо показать код
serSeventin
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 76
16.05.2016, 20:33  [ТС]     Конец ScrollView #9
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
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
class RecyclerLoad extends RecyclerView.Adapter<RecyclerLoad.ViewHolder> {
    //переменные
 
    public static class ViewHolder extends RecyclerView.ViewHolder {
        //переменные
 
        public ViewHolder(View v) {
            super(v);
            //инициализация переменных
        }
    }
 
    public RecyclerLoad(Load l) {
        //инициализация переменных
    }
 
    public RecyclerLoad.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.content_checkbox, parent, false);
 
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }
 
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Log.d("MyLog", "onBindViewHolder");
 
        ClientLoadWords clw = new ClientLoadWords();
 
        clw.LoadWords("2(!!)" + (sub_str.length() != 0 ? sub_str : "(--)"));
 
        try {
            clw.join();
        } catch (InterruptedException e) {
            Log.d("MyLog", "ShowViewWords: " + e);
        }
 
        if(clw.int_error == -1) {
            Toast toast = Toast.makeText(this_load.getApplicationContext(),
                    "Нет соединения с сервером!", Toast.LENGTH_SHORT);
            toast.show();
        }
 
        String first_chr = new String("");
 
        amount = clw.amount;
        id_check = new int[amount];
 
        for(int i = 0; i < clw.amount; i++) {
 
            if(!first_chr.equals(String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0)))) {
                Log.d("MyLog", "First Chr: " + first_chr + ", me.getKey(): " + clw.Eng_Array[i].toUpperCase().charAt(0) +
                        " boolean: " + first_chr.equals(String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0))));
                first_chr = String.valueOf(clw.Eng_Array[i].toUpperCase().charAt(0));
                holder.chkbox.setText(first_chr + ":");
                holder.chkbox.setVisibility(View.VISIBLE);
            }
 
            holder.chkbox.setText(clw.Eng_Array[i] + " - [" + clw.Trans_Array[i] + "] - " + clw.Rus_Array[i]);
            holder.chkbox.setEng(clw.Eng_Array[i]);
            holder.chkbox.setTrans(clw.Trans_Array[i]);
            holder.chkbox.setRus(clw.Rus_Array[i]);
            holder.chkbox.setTextSize(20);
            holder.chkbox.setId(clw.Id_Array[i]);
            id_check[i] = clw.Id_Array[i];
        }
    }
 
    @Override
    public int getItemCount() {
        return amount;
    }
 
 
    @Override
    public void onAttachedToRecyclerView(RecyclerView recyclerView) {
        super.onAttachedToRecyclerView(recyclerView);
    }
}
Это код находится в методе onCreate:
Java
1
2
3
4
5
6
7
rv_load = (RecyclerView) findViewById(R.id.rv_load);
 
        mLayoutManager = new LinearLayoutManager(this);
        rv_load.setLayoutManager(mLayoutManager);
 
        mAdapter = new RecyclerLoad(this);
        rv_load.setAdapter(mAdapter);
Добавлено через 2 часа 39 минут
Так почему не вызывается?
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
17.05.2016, 09:44     Конец ScrollView #10
потому что там нет пары методов, которые должны быть, в том же примере по ссылке все совсем не так выглядит, потрать свое время на изучение того примера
и в onBindViewHolder ацкий мрак
serSeventin
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 76
18.05.2016, 07:51  [ТС]     Конец ScrollView #11
А из какой функции нужно вызывать notifyDataSetChanged(); из всех методов RecyclerLoad extends RecyclerView.Adapter<RecyclerLoad.ViewHolder> выдает исключение:
Код
java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
Добавлено через 8 часов 46 минут
Проблема в том, что когда выполняется это условие:
Java
1
2
3
4
if (position == movies.size() - 1) {
            // вызываем метод догрузки новых айтемов или просто добавляем новые откуда-то
            // после подгрузки новых элементов не забываем вызвать notifyDataSetChanged();
        }
Происходит подгрузка элементов, но они не отображаются в RecyclerView, а метод notifyDataSetChanged(); не вызывается из функция RecyclerLoad extends RecyclerView.Adapter<RecyclerLoad.ViewHolder>, что делать в данной ситуации?

Добавлено через 32 минуты
Кароч, разобрался, сунул вызов метода через переменную mAdapter в функцию onTouch, все работает, спасибо за советы!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2016, 10:18     Конец ScrollView
Еще ссылки по теме:

ScrollView для Dialog - Программирование Android
Ребят столкнулся с проблемой при создании диалога с динамические элементами, не могу добавить в него Scrollview Спасибо заранее

ScrollView - добавление прокрутки - Программирование Android
Всем добра... Возникла проблема с ScrollView :-| Код разметки: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout ...

IsSelectable textview in ScrollView - Программирование Android
Как понятно из названия темы, у меня хватило ума втулить isSelectable textview в ScrollView. Проблема в следующем, при клике на textview (к...

ScrollView под кнопками - Программирование Android
Не могу никак добиться, что бы ScrollView был до кнопок. Сейчас же он прокручивается и под кнопками. Как это исправить? &lt;RelativeLayout...

Диаграмма (BarChart) - ScrollView - Программирование Android
Всем привет. Нужна помощь. Необходимо сделать график, который на картинке (BarChart). В качестве столбцов рекомендуется использовать View,...


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

Или воспользуйтесь поиском по форуму:
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
18.05.2016, 10:18     Конец ScrollView #12
если вызивать notifyDataSetChanged когда лаяут типа скролится то действительно выдаст исключение
поэтому надо его вызывать уже после добавления всех новых элементов

- добавили все элементы и только после этого в этом же методе дернули notifyDataSetChanged
Yandex
Объявления
18.05.2016, 10:18     Конец ScrollView
Ответ Создать тему
Опции темы

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