1

私の英語を許してください、私はフランス人です...

Android アプリについて質問があります。グリッド ビューを Pinterest スタイルとして統合する必要があります。私はこのライブラリを見つけました:スタッガードグリッドビュー(https://github.com/maurycyw/StaggeredGridView

それはうまくいきますが... OnScrollListener はありません! さらに読み込むには、ユーザーが最後のアイテムをいつ表示するかを知る必要がありました。しかし、 OnScrollListener なしでは不可能です!

私の問題のアイデアはありますか?

どうもありがとう。

4

4 に答える 4

1

更新:
テスト後、スクロール位置を 0 (ビューの開始) にリセットするケースを呼び出し
ます。 代わりにPinterestLikeAdapterViewを使用してくださいnotifyDataSetChanged()StaggeredGridView Adapter


手順に追加loadMoreListenerしましたStaggeredGridView
:
1- loadmore インターフェイスと booelan isLoading を (クラスの上部に) 追加します。

public interface OnLoadMoreListener {
    public boolean onLoadMore();
}

private boolean mIsLoading;
private OnLoadMoreListener mLoadMoreListener;

2- addtrackMotionScroll関数の elsedeltaY > 0
とその後のfind 関数up = false;

if (overhang <= 80) { // 80 is how nearest to the end. ZERO mean the end of list
    // scrolling down and almost reach the end of list
    if (false == mIsLoading && null != mLoadMoreListener) {
        if (false == mLoadMoreListener.onLoadMore()) {
            mIsLoading = true;
            Log.d(TAG, "loadMore");
        }
    }
}

3-setListener()追加loadComplated()機能

public void setOnLoadMoreListener(OnLoadMoreListener onLoadMoreListener) {
    this.mLoadMoreListener = onLoadMoreListener;
}

public void loadMoreCompleated() {
    mIsLoading = false;
}

使用方法:
1- で a を定義loadMoreListenerします。Activity/Fragment

private StaggeredGridView.OnLoadMoreListener loadMoreListener = new StaggeredGridView.OnLoadMoreListener() {

    @Override
    public boolean onLoadMore() {
        loading.setVisibility(View.VISIBLE);
        // load more data from internet (not in the UI thread)

        return true; // true if you have more data to load, false you dont have more data to load 
    }
};

2-データのロードを完了し、それをアダプター呼び出しに追加するとき

private void doneLoading() {
    gridView.loadMoreCompleated();
    loading.setVisibility(View.GONE);
}
于 2013-06-17T13:03:03.673 に答える
0

さらにロードするには、ユーザーが最後のアイテムをいつ表示するかを知る必要がありました。しかし、 OnScrollListener なしでは不可能です!

そのために onScrollListener を使用するのはなぜですか? 代わりに、BaseAdapter を拡張するクラス (おそらく MyStaggeredGridAdapter?) を作成し、それを StaggeredGridView に適用します。次に、アダプターの getView() メソッドを使用できます。このメソッドは、新しいビューをレンダリングする必要があるたびに呼び出されます。

于 2013-08-01T21:45:32.677 に答える