5

googleとstackoverflowでしばらく検索しましたが、解決策が見つかりません。センスuiのようにAndroid2.2または2.1でリストビューのオーバースクロールを取得する可能性はありますか?!私のアラームビューのように:AlarmView Sense UI

4

5 に答える 5

14

Chirag の回答がこのように高く評価されているのを見て、私はショックを受けました。不完全でビルドされないため、誰の役にも立たない。また、そのソースを引用していません。

元のコードは次の場所にあります: http://code.google.com/p/scroll-pager/

また、スクロール ページャーのコードは GPL ライセンスの下でリリースされていることにも注意してください。

更新 : scroll-pager の作成者と話をしたところ、彼は MIT ライセンスに切り替えました。

于 2012-02-22T06:12:23.153 に答える
1

Listviewには、オーバースクロールのサポートが組み込まれています。setOverscrollModeおよび関連するメソッドsetOverscrollHeaderおよびsetOverscrollFooterを確認してください。ListViewは、AbsListView.onOverscrolledをオーバーライドすることにより、オーバースクロールヘッダー/フッターを利用します。別の動作が必要な場合は、自分でオーバーライドして実装できます。

于 2011-08-12T15:25:10.413 に答える
1

この投稿はかなり古いことがわかりますが、最近GitHubでこのオープンソース プロジェクトをリリースしました。このプロジェクトはこの問題を解決し、他の人が将来同様のオーバー スクロールの問題を解決するのに役立つ可能性があります。

これは基本的に、多くのコア Android スクロール可能ビューに iOS のようなオーバー スクロール効果を提供します。ListView はその 1 つであり、非常に簡単に適用できます。

特にリストビューの場合、これを有効にするために必要なことは次のとおりです。

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'
}
于 2015-11-27T15:25:05.747 に答える
1

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

ListView は独自の垂直スクロールを処理するため、ListView で ScrollView を使用しないでください。最も重要なことは、これを行うと、大きなリストを処理するための ListView の重要な最適化がすべて無効になります。これは、ListView がアイテムのリスト全体を効果的に表示して、ScrollView によって提供される無限のコンテナーを埋めるためです。

于 2012-07-30T07:06:25.657 に答える
-5

xml ファイルで scrollview を定義します。

次に、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);
                }
            }
        };
    }
于 2012-01-12T09:33:09.567 に答える