問題タブ [linearlayoutmanager]

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 投票する
2 に答える
919 参照

android - 動的な高さ RecyclerView 内の ImageView のグライド notifydatasetchanged の呼び出し時に点滅しますか?

RecyclerView を作成していくつかの画像とテキストを表示すると、ユーザーは RecyclerView の行をブックマークできます。RecyclerView の画像は、幅と高さが wrap_content で一致する親です。ブックマークをクリックすると、アダプターは RecyclerView で notifydatasetchanged を呼び出します。私の問題は、notifydatasetchanged を呼び出した後、RecyclerView が高さで画像を点滅させることです。

OnButton クリック

RecyclerView 構成

0 投票する
10 に答える
12718 参照

android - チャット画面の notifyDataSetChanged で RecyclerView が一番上にスクロールする

下から開始し、ユーザーがチャットの上端に達したときにさらにデータをロードする recyclerView を使用して、メッセージのような画面を作成しようとしています。しかし、私はこの奇妙な問題に直面しています。

私のrecyclerViewは、notifyDataSetChangedを呼び出すと一番上にスクロールします。このため、 onLoadMore が複数回呼び出されます。

これが私のコードです:

** アダプター内

** 活動中

recyclerView が一番上にスクロールするだけです。一番上までスクロールすると、この問題は解決されます。この問題の原因を突き止めるのを手伝ってください。前もって感謝します。

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

android - 特定の位置で RecyclerView アイテムの背景を変更する

があり、RecyclerViewその項目をクリックすると新しい が表示されActivityます。ViewPager複数の商品がございます。押し戻すと、現在のアイテムの位置が保存されます。私がやりたいことは、ユーザーが のアイテムの上に立って押し戻すとViewPager、そのアイテムが で強調表示されるはずRecyclerViewです。

問題

アイテムの位置が見えていれば問題ありません。以下を使用して背景を変更します

しかし、アイテムが表示されていない場合、何も起こらず、背景を変更できません。

これまでに行ったこと

  1. 位置までスクロールしてから背景を変更しようとしました。RecyclerView正しくスクロールしていますが、 findViewByPositionnull を返します。
  2. 私の観察から(間違っている可能性があります)、プログラムでスクロールすると、スクロールRecyclerViewされた位置が最後に表示されるアイテムになると思います。私はそれをやろうとしましたが、運がありませんでした。
  3. 多くの人が示唆しているように、置いThread.sleep(100)てから位置を取得しようとしました。これもうまくいきませんでした。

注:onBindViewHolder強調表示される項目が事前に定義されていないため、これを行うことはできません。

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

android - 水平 RecyclerView を使用した layoutManager.findFirstVisibleItemPosition()

学校のプロジェクト用に Android アプリケーションをコーディングしています。

RecyclerViewを使用して水平スクロールを実装しましたLinearLayoutManager.HORIZONTAL

次のように、要素 n などの特定の要素が、現在表示されている要素のセットの 真ん中にあるようにしたいと思います。ここに画像の説明を入力

私は周りを検索して、このリンクを見つけました: https://www.reddit.com/r/androiddev/comments/3o0xzw/how_do_you_scroll_to_an_item_with_recyclerview_to/

layoutManager.findFirstVisibleItemPosition()解決策は、 andの合計の半分を取り、layoutManager.findLastVisibleItemPosition()それを真ん中にしたい要素の位置に追加することでした。

RecyclerView.NO_POSITIONただし、この水平スクロールを使用すると、これらの 2 つのメソッドは常に返されるRecyclerViewため、合計の半分が 0 になり、計算が役に立たなくなります。

これが私のコードです:

誰かがこの問題の回避策を持っているかどうか教えてもらえますか? 前もって感謝します。

編集: aonScrollListenerと へのキャストrecyclerView.getLayoutManager()を実装しようとしたときLinearLayoutManager、これらのメソッドは完全に正常に機能しました。理由がわかりますか?

編集2:

ここでこのソリューションを使用しました: RecyclerView SmoothScroll を中央に配置します。android、しかし、なぜメソッドが返されるのNO_POSITIONですか?