問題タブ [gridlayoutmanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
33 に答える
286251 参照

android - Android Recyclerview GridLayoutManager の列間隔

GridLayoutManager を使用して RecyclerView で列間隔を設定するにはどうすればよいですか? レイアウト内でマージン/パディングを設定しても効果がありません。

0 投票する
1 に答える
674 参照

android - 2 つの異なる列を持つ GridView を作成する

2 種類の項目を持つ GridView を作成しようとしています。

最初の数項目が 1 行全体を占めます。ユーザーがスクロールを続けると、次のように 1 行に 2 つのアイテムが表示され始めます。

http://imgur.com/YFSUxVI

このタイプのグリッド ビューを実現するにはどうすればよいですか? iOS の UICollectionView を使用すると簡単に実行できますが、Android ではうまくいきませんでした。どんな助けでも大歓迎です!

0 投票する
1 に答える
2554 参照

android - RecyclerView がアイテムを移動しないようにするにはどうすればよいですか?

基本的に同じサイズのアイテムのグリッドであるレイアウトを実装しようとしています。

項目は順序付けられており、カレンダーのように日付が表示されているため、スクロールするたびにランダムに並べ替えることができない理由がわかります。

私の質問は次のとおりです。この動作を防ぐ方法はありますか、それとも古い GridLayout をそのまま使用する必要がありますか?

これは、新しい RecyclerView は、ニュース記事や投稿など、ランダムに並べ替えられたアイテムにのみ使用することを意図していると当初考えていたためです。それは、その行動を制御することの難しさを説明したでしょう.

ただし、いくつかの読書とWeb検索の後、RecyclerViewはListView、GridLayout、およびそのLayoutManagerによって実装されている他のいくつかのアップグレードバージョンであることが間違っている場合は修正してください。

誰かがこれで私を助けることができますか?

ありがとう!

編集:これは私のアダプターです:

0 投票する
2 に答える
2795 参照

android - RecyclerView の予測アイテム アニメーションが機能しない (APPEARING)

私は GridLayoutManager を備えた RecyclerView を持っています (lib v7 をサポートしています)。アダプターを更新し、notifyItemMoved を作成します。アイテムの元の位置が画面上にあり、目的の位置も画面上にある場合、「移動アニメーション」が再生されます。項目が画面外の位置 (位置 1000、またはビューポートから離れた位置) にあり、ビューポートに移動した場合、「フェードイン アニメーション」で表示されます。

supportsPredictiveItemAnimations() が true を返すという事実にもかかわらず、予測アイテム アニメーションが機能していないようです。私は何か間違ったことをしていますか?いくつかのメソッドをオーバーライドして有効にする必要がありますか?

RecyclerView のソースコードを読んでいたところ、dispatchLayout メソッドの javadoc に次のように書かれています。

  • PERSISTENT ビューは移動されます ({@link ItemAnimator#animateMove(ViewHolder, int, int, int, int)})
  • REMOVED ビューは削除されます ({@link ItemAnimator#animateRemove(ViewHolder)})
  • ADDED ビューが追加されました ({@link ItemAnimator#animateAdd(ViewHolder)})
  • DISAPPEARING ビューが画面外に移動されました
  • APPEARING ビューが画面上で移動されます

それにもかかわらず、ItemAnimator は ADDED と APPEARING を区別しません。Predictife アニメーションを修正するか、少なくとも APPEARING アニメーションを「画面アニメーションの外から移動する」ように見せて、ADDED アニメーションをそのままにすることは可能ですか?

0 投票する
1 に答える
82 参照

java - コンテナーをグリッド レイアウト内に配置する

私はJava GUIのプログラミングに比較的慣れていないので、グリッドレイアウトを使用して、そのグリッドレイアウト内にコンテナを配置したいと考えていました。私はそれを行う方法がよくわかりませんが、ここに私が試したものがありますが、うまくいきませんでした:

これが間違っていることはわかっていますが、誰かが私を助けてくれることを願っています。ありがとう!

0 投票する
3 に答える
5091 参照

android - GridLayoutManager と Picasso を使用した RecyclerView で間違った画像が表示される

更新 #1

hasStableIds(true) を追加し、Picasso をバージョン 2.5.2 に更新しました。問題は解決しません。

再生:

RecyclerView と GridLayoutManager (spanCount = 3)。リスト アイテムは、内部に ImageView を含む CardViews です。

すべてのアイテムが画面に収まらない場合、1 つのアイテムで notifyItemChanged を呼び出すと、onBindViewHolder() が複数回呼び出されます。1 つの呼び出しは、画面に表示されていない項目の notifyItemChanged 他のものからの位置です。

問題:

notifyItemChanged に渡された position のアイテムに、画面上にないアイテムに属する画像が読み込まれることがあります (ビューホルダーのリサイクルが原因である可能性が最も高いですが、アイテムが所定の位置に残っている場合、渡されたビューホルダーは同じだろう)。

file/uri が null の場合でも load() を呼び出すことに関する他の問題に関する Jake のコメントを見つけました。画像はすべての onBindViewHolder に読み込まれます。

簡単なサンプルアプリ:

アイテムをタップすると、そのアイテムの位置に等しいパラメータで notifyItemChanged が呼び出されます。

コード:

0 投票する
0 に答える
924 参照

android - 固定サイズの要素とスクロールを備えた Android GridLayoutManager

Android用に開発している掃海艇ゲームに地雷原を実装しようとしています。私は recyclerview を使用して GridLayoutManager を試しましたが、内部のビューのサイズが変更されるため、同時に水平方向と垂直方向にスクロールできません。

FixedGridLayoutManagerも調べましたが、画面にビューが多すぎると、左右の境界を越えてスクロールでき、アニメーションが機能しなくなります。

固定サイズのビューと水平 + 垂直スクロールを有効にするために GridLayoutManager を拡張したい場合、どこから始めればよいですか?

0 投票する
4 に答える
52467 参照

android - GridLayoutManager を使用して RecyclerView に項目をドラッグ アンド ドロップする

私が達成したいこと:ドラッグアンドドロップをサポートし、ドラッグ中にアイテムを再配置するGridLayoutManagerを備えたRecyclerViewを用意します。

補足: ドラッグ アンド ドロップで何かを開発するのは初めてです。

たとえば、ListView を使用してこの機能を実現する方法については、多くのトピックがあります

ただし、例は通常、ドラッグされたビューのビットマップを作成する多くのコードであり、アニメーションを再配置するため、 RecyclerViewとView.startDrag(...)RecyclerView を使用して同じ結果を達成できるはずです。notifyItemAdded()notifyItemMoved()notifyItemRemoved()

だから私はいくつか遊んで、これを思いついた:

このコードのような作業は、スワッピングを取得しますが、非常に不安定/不安定であり、グリッド全体を更新すると、元の順序またはランダムなものに再配置されることがあります。とにかく、上記のコードは私の最初の簡単な試みにすぎません。私が本当に知りたいのは、ReyclerView でドラッグ アンド ドロップを行う標準/ベスト プラクティスの方法があるかどうか、またはそれを解決する正しい方法がまだ同じかどうかです。 ListViews に何年も使用されていますか?