Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3

RecyclerView прокрутка до полного появления

01.06.2018, 16:07. Показов 3793. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как можно сделать так чтобы если начинаешь крутить вниз или вверх итемы не оставались видимыми наполовину, а становились или полностью видимыми или исчезали?

Добавлено через 1 минуту
точнее, надо так чтобы если итем появился на половину то прокрутить до нее до конца(так чтобы она была видна полностью)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2018, 16:07
Ответы с готовыми решениями:

Advanced RecyclerView и Expandable RecyclerView
Сделал expandable recycler view на основе advancedRecyclerView сборочки, но не важно это думаю, наследуется от обычного RecyclerView. ...

Определить повторы появления чисел по мере появления и вывести их на экран
Программа генерирует последовательность случайных чисел от 0 до 100. Определить повторы появления чисел по мере появления и вывести их на...

Задача: сделать программу подсчета частоты появления каждого символ и Отсортировать по частоте появления
Прошу помочь не понимаю даже как начать делать. Суть задания, есть...

2
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.06.2018, 16:56
Лучший ответ Сообщение было отмечено ILNAR_93 как решение

Решение

что-то типа такого, очень грубо, но работает
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class MyScrollListener extends RecyclerView.OnScrollListener {
 
    private int lastDy = 0;
 
    @Override
    public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
        if (newState == RecyclerView.SCROLL_STATE_IDLE) {
            final LinearLayoutManager lm = (LinearLayoutManager) recyclerView.getLayoutManager();
            int pos = lastDy > 0 ? lm.findLastVisibleItemPosition() : lm.findFirstVisibleItemPosition();
            recyclerView.smoothScrollToPosition(pos);
        }
    }
 
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
        lastDy = dy;
    }
}
и вешаем его на ресайклер
Java
1
recyclerView.addOnScrollListener(new MyScrollListener())
оно конечно скролит все равно не плавно, в описании метода написано что надо создавать свой SmoothScroller и переопределять методы в лаяут менеджере, но это отдельная история
1
Android
245 / 242 / 52
Регистрация: 19.01.2013
Сообщений: 1,896
Записей в блоге: 3
04.06.2018, 13:46  [ТС]
Цитата Сообщение от Pablito Посмотреть сообщение
в описании метода написано что надо создавать свой SmoothScroller и переопределять методы в лаяут менеджере, но это отдельная история
В связке с кастомным лаяут менеджером работает отлично, спасибо
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
public class AppsGridCustomLayoutManager extends GridLayoutManager {
    private static final float MILLISECONDS_PER_INCH = 300f;
    private Context mContext;
    public AppsGridCustomLayoutManager(Context context, int collumn) {
        super(context, collumn);
        mContext = context;
    }
 
    @Override
    public void smoothScrollToPosition(RecyclerView recyclerView,
                                       RecyclerView.State state, final int position) {
 
        LinearSmoothScroller smoothScroller =
                new LinearSmoothScroller(mContext) {
                    @Override
                    public PointF computeScrollVectorForPosition
                    (int targetPosition) {
                        return AppsGridCustomLayoutManager.this
                                .computeScrollVectorForPosition(targetPosition);
                    }
 
                    //This returns the milliseconds it takes to
                    //scroll one pixel.
                    @Override
                    protected float calculateSpeedPerPixel
                    (DisplayMetrics displayMetrics) {
                        return MILLISECONDS_PER_INCH/displayMetrics.densityDpi;
                    }
                };
 
        smoothScroller.setTargetPosition(position);
        startSmoothScroll(smoothScroller);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2018, 13:46
Помогаю со студенческими работами здесь

Вероятности появления каждого из двух независимых событий А и В соответственно равны 0,6 и 0,5. Найти вероятность появления только одного из них
Вероятности появления каждого из двух независимых событий А и В соответственно равны 0,6 и 0,5. Найти вероятность появления только одного...

RecyclerView внутри recyclerView
Добрый день. Хочу сделать список recyclerView c горизонтальной прокруткой, который отображает допустим 20 элементов(card). Т.е....

Вводится латинские символы до появления символа ".". Вычислить частоту появления каждой буквы
Вводится цепочка латинских символов до появления символа ".".Необходимо вычислить частоту появления каждой буквы. Мои попытки решить: ...

385 занятия. Вероятность появления студента 0,2. Какая вероятность появления не менее 76?
Добрый день! Имеется задача и мое решение её на картинке. Пересчитав в ексель у меня получился другой ответ, повидимому правильный...

Параллельная вертикальная прокрутка двух блоков и отдельная горизонтальная прокрутка одного из двух блоков
Всем привет! Помогите решить проблему, пожалуйста. Есть блок div, внутри которого два блока div (в каждом из них по одной таблице),...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru