問題タブ [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 - 毎回機能しない位置へのスクロール
水平スクロール可能な を実装しましたRecyclerView
。私RecyclerView
は aLinearLayoutManager
を使用していますが、私が直面している問題は、scrollToPosition(position)
orsmoothScrollToPosition(position)
または fromを使用しようとしたときLinearLayoutManager
ですscrollToPositionWithOffset(position)
。どちらも私にはうまくいきません。スクロール呼び出しが目的の場所にスクロールしないか、OnScrollListener
.
これまで、さまざまなコードの組み合わせを試してきたので、ここにすべてを掲載することはできません。以下は私のために働くものです(しかし部分的にのみ):
このscrollToPositionWithOffset()
ため選択しましたが、GridLayoutManager の代わりに LinearLayoutManager を使用しているため、おそらくケースが異なります。しかし、解決策は私にも有効ですが、先ほど述べたように、部分的にしか機能しません。
- スクロールの呼び出しが 0 番目の位置から totalSize - 7 までの場合、スクロールは魅力的に機能します。
- スクロールが totalSize - 7 から totalSize - 3 の場合、初めてリストの最後の 7 番目の項目までスクロールします。2回目ですが、うまくスクロールできます
- totalSize - 3 から totalSize までスクロールすると、予期しない動作が発生し始めます。
誰かが回避策を見つけた場合は、感謝します。私のカスタムコードの要点は次ReyclerView
のとおりです。
android - Android: カスタム LinearLayoutManager が recyclerView のスクロールを許可しない
カスタム LinearLayoutManager を使用して、recyclerView のスクロールを無効/有効にしています。
これを使用して RecyclerView を設定すると、isScrollEnabled を true に設定してもまったくスクロールしません。
誰でも助けることができますか?
android - 1 つの LinearLayoutManager は 1 つの RecyclerView に対してのみですか?
アイテムの水平リストを表示するために、1 つのフラグメントに 3 つの RecyclerView を持つアプリを構築しています。LinearLayoutManager オブジェクトを作成し、3 つすべての RecyclerView に設定しました。しかし、1 つの LinearLayoutManager は 1 つの RecyclerView にのみアタッチできると言って、アプリをクラッシュさせます。同じプロパティが必要なのに、すべてにアタッチできないのはなぜですか。コードは..
エラー
android - LinearLayoutManager をカスタマイズするには?
このような効果(アイテムの半分を表示)を実現する方法,カスタムを使用しようとしましたが、方法LinearLayoutManager
が理解できずに失敗しましたonMeasure
。
android - RecyclerView LinearLayout マネージャーは、ランドスケープ モードで常に -1 を返します - findLastCompletelyVisibleItemPosition()
findLastCompletelyVisibleItemPosition()
RecyclerView で最後に表示されるアイテムを特定するために使用しています。
レイアウトの設定方法のコード スニペットを次に示します。
レイアウト XML:
縦向きモードでは、これは正常に機能し、常に正しい位置に戻ります。
ただし、ランドスケープ モードでは、返される位置は常に -1 です。
私の質問は:
なぜこれが起こるのか誰か知っていますか?
これをオーバーライドして正しい位置を返すにはどうすればよいですか?
または、ランドスケープの最後のアイテムの正しい位置を取得するための別のソリューションを誰かが推奨できますか?
android - RecyclerViewとLinearLayoutManagerでアイテム数に関係なくアイテムを一番上に表示する方法は?
私はアイテムのリストを持っています。これらの項目は日付順に並べられています。今より前の日付の項目 (「古い」項目) は、ユーザーがアプリケーションを開いたときに表示されるべきではありませんが、ユーザーはリストを上にスクロールすることで表示できるはずです。
position
将来の日付を持つ最初のアイテム (「新しい」アイテム)を見つけて、 を呼び出しますrecyclerView.scrollToPosition(position)
。
私も試しlayoutManager.scrollToPositionWithOffset(position, 0)
ました。
これは、リストに多くの「新しい」アイテムがある場合に機能します。
ただし、項目が少なすぎる場合 (たとえば、「古い」アイテムと「新しい」アイテムが 1 つずつ)、これらの方法は機能しません。
リスト内のアイテムの数に関係なく、プログラムでリストを特定の位置のアイテムにスクロールして、このアイテムを一番上に配置するにはどうすればよいですか?
android - Vertical RecyclerView 内に Horizontal RecyclerView を表示するとちらつき効果が発生する
私は を持っておりVertical
RecyclerView
、この垂直のRecyclerView's
各項目には が含まれていますHorizontal RecyclerView
。だから私はこれを行い、パフォーマンス要因を除いて正常にVertical RecyclerView
動作しました。垂直リストをスクロールすると、ちらつき、悪い動作が発生します。Adapter
水平方向RecyclerView
は垂直方向に設定してRecyclerView
いるため、スクロールするたびに新しいアダプターを作成してデータを設定していますが、実際にはこれがパフォーマンスの原因です。これを最適化する方法はありますか?
コード