Android (список) выглядит как прокрутка Sense UI - PullRequest
5 голосов
/ 12 августа 2011

Я некоторое время искал в Google и в stackoverflow, но не могу найти решение. Есть ли возможность получить переполнение списка просмотра на Android 2.2 или 2.1, как это делает пользовательский интерфейс ?! Как здесь в моем представлении тревоги: AlarmView Sense UI

Ответы [ 5 ]

14 голосов
/ 22 февраля 2012

Я потрясен, увидев, что ответ Чирага так высоко оценили. Это никому не полезно, потому что оно неполное и не строит. Он также не ссылается на свой источник.

Оригинальный код находится здесь: http://code.google.com/p/scroll-pager/

Также обратите внимание, что код пейджера прокрутки выпускается под лицензией GPL.

ОБНОВЛЕНИЕ: Я поговорил с автором scroll-pager, и теперь он перешел на лицензию MIT.

1 голос
/ 27 ноября 2015

Я вижу, что этот пост довольно старый, но я недавно выпустил этот проект с открытым исходным кодом на GitHub , который решает эту проблему и может помочь другим решить подобные проблемы с избыточной прокруткой в ​​будущем.

Он в основном обеспечивает iOS-эффект чрезмерной прокрутки для многих основных прокручиваемых представлений Android - ListView является одним из них, и его очень легко применять.

Специально для представлений списка, все, что вам нужнодля этого нужно сделать следующее:

ListView listView = ... // For example: (ListView) findViewById(R.id.list_view);
OverScrollDecoratorHelper.setUpOverScroll(listView);

И чтобы включить проект в свой, добавьте его в свой build.gradle:

dependencies {
    // ...

    compile 'me.everything:overscroll-decor-android:1.0.0'
}
1 голос
/ 30 июля 2012

http://developer.android.com/reference/android/widget/ScrollView.html

Вы никогда не должны использовать ScrollView с ListView, потому что ListView заботится о своей собственной вертикальной прокрутке.Что наиболее важно, выполнение этого снимает все важные оптимизации в ListView для работы с большими списками, поскольку фактически заставляет ListView отображать весь список элементов для заполнения бесконечного контейнера, предоставляемого ScrollView.

1 голос
/ 12 августа 2011

Listview имеет встроенную поддержку для прокрутки. Проверьте setOverscrollMode и связанные методы setOverscrollHeader и setOverscrollFooter . ListView использует верхний / нижний колонтитул прокрутки путем переопределения AbsListView.onOverscrolled ; если вам нужно другое поведение, вы можете реализовать его, переопределив его самостоятельно.

0 голосов
/ 12 января 2012

Определите представление прокрутки в своем XML-файле.

Затем в своем Java-файле это:

scrollView = (ScrollView) findViewById(R.id.scr);
    contentView = (ViewGroup) findViewById(R.id.r2);
    scrollView.setOnTouchListener(new ScrollPager(scrollView, contentView));
    scrollView.post(new Runnable() {
        public void run() {
            scrollView.scrollTo(0, contentView.getPaddingTop());
        }
    });

И добавьте класс в вышеуказанный Java-файл:

public class ScrollPager implements OnTouchListener
public ScrollPager(ScrollView aScrollView, ViewGroup aContentView)
    {
        mScrollView = aScrollView;
        mContentView = aContentView;
        scroller = new Scroller(mScrollView.getContext(), new OvershootInterpolator());
        task = new Runnable()
        {
            public void run()
            {
                scroller.computeScrollOffset();
                mScrollView.scrollTo(0, scroller.getCurrY());

                if (!scroller.isFinished())
                {
                    mScrollView.post(this);
                }
            }
        };
    }
...