問題タブ [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.
android - 動的な高さ RecyclerView 内の ImageView のグライド notifydatasetchanged の呼び出し時に点滅しますか?
RecyclerView を作成していくつかの画像とテキストを表示すると、ユーザーは RecyclerView の行をブックマークできます。RecyclerView の画像は、幅と高さが wrap_content で一致する親です。ブックマークをクリックすると、アダプターは RecyclerView で notifydatasetchanged を呼び出します。私の問題は、notifydatasetchanged を呼び出した後、RecyclerView が高さで画像を点滅させることです。
OnButton クリック
RecyclerView 構成
android - チャット画面の notifyDataSetChanged で RecyclerView が一番上にスクロールする
下から開始し、ユーザーがチャットの上端に達したときにさらにデータをロードする recyclerView を使用して、メッセージのような画面を作成しようとしています。しかし、私はこの奇妙な問題に直面しています。
私のrecyclerViewは、notifyDataSetChangedを呼び出すと一番上にスクロールします。このため、 onLoadMore が複数回呼び出されます。
これが私のコードです:
** アダプター内
** 活動中
recyclerView が一番上にスクロールするだけです。一番上までスクロールすると、この問題は解決されます。この問題の原因を突き止めるのを手伝ってください。前もって感謝します。
android - 特定の位置で RecyclerView アイテムの背景を変更する
があり、RecyclerView
その項目をクリックすると新しい が表示されActivity
ます。ViewPager
複数の商品がございます。押し戻すと、現在のアイテムの位置が保存されます。私がやりたいことは、ユーザーが のアイテムの上に立って押し戻すとViewPager
、そのアイテムが で強調表示されるはずRecyclerView
です。
問題
アイテムの位置が見えていれば問題ありません。以下を使用して背景を変更します
しかし、アイテムが表示されていない場合、何も起こらず、背景を変更できません。
これまでに行ったこと
- 位置までスクロールしてから背景を変更しようとしました。
RecyclerView
正しくスクロールしていますが、findViewByPosition
null を返します。 - 私の観察から(間違っている可能性があります)、プログラムでスクロールすると、スクロール
RecyclerView
された位置が最後に表示されるアイテムになると思います。私はそれをやろうとしましたが、運がありませんでした。 - 多くの人が示唆しているように、置い
Thread.sleep(100)
てから位置を取得しようとしました。これもうまくいきませんでした。
注:onBindViewHolder
強調表示される項目が事前に定義されていないため、これを行うことはできません。
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
ですか?