[解決済み] RecyclerViewのsetHasFixedSizeを理解する
質問
を理解するのに苦労しています。
setHasFixedSize()
. のサイズが小さいときに最適化のために使用されることは知っています。
RecyclerView
は、docsから、変更されません。
しかし、それはどういう意味なのでしょうか?ほとんどの場合
ListView
は、ほとんどの場合、固定サイズです。どのような場合に固定サイズでなくなるのでしょうか?画面上で占める実際の面積は、コンテンツに合わせて大きくなるということでしょうか?
どのように解決するのですか?
A 非常に RecyclerViewの簡略化されたバージョンがあります。
void onItemsInsertedOrRemoved() {
if (hasFixedSize) layoutChildren();
else requestLayout();
}
このリンク
を呼び出す理由を説明します。
requestLayout
は高くつくかもしれません。基本的に、アイテムが挿入、移動、削除されるたびに、RecyclerViewのサイズ(幅と高さ)が変化し、ビュー階層内の他のビューのサイズも変化する可能性があります。これは、アイテムが頻繁に追加または削除される場合、特に厄介なことです。
を設定することで、不要なレイアウトパスを回避することができます。
setHasFixedSize
を true に設定すると、 アダプタの内容を変更しても高さや幅が変わらないようになります。
更新しました。 JavaDocが更新され、このメソッドが実際に何をするのかがよりよく説明されるようになりました。
<ブロッククオートRecyclerViewは、以下のような最適化を行うことができます。 RecyclerViewのサイズがアダプタのサイズに影響されないことを事前に確認します。 の内容です。RecyclerViewはまだ、他の を計算することはできません(例:親のサイズ)。 子プロセスのサイズやアダプタの内容には依存しません。 アダプタ内のアイテム数)。
を使用する場合、RecyclerView に該当する場合は、{@code true}に設定してください。これにより RecyclerViewは、そのアダプタのレイアウト全体が無効になることを回避します。 の内容が変更されます。
アダプタの変更がサイズに影響しない場合は、 @param hasFixedSize true を指定します。 は、RecyclerViewの
関連
-
telnet'が内部コマンドまたは外部コマンドとして認識されない 解決方法
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
ライブラリをモジュールとしてインポートする際にエラーが発生しました。Error:A problem occurred configuring project ':library'.
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
アンドロイドスタジオ学習入門
-
[解決済み] RecyclerView onClick
-
[解決済み】RecyclerViewで横長のListViewを構築する方法
-
[解決済み】RecyclerView Adapterのデータを更新する方法
-
[解決済み】RecyclerViewの表示項目を取得する。
-
[解決済み】RecyclerViewとListViewの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
ActivityはOnFragmentInteractionListenerを実装しなければならないに関する質問
-
Android TextViewにandroid:ellipsize=endのバグがある。
-
Androidプロセス生存のためのソリューション
-
Android ProgressBarの色を変更する
-
Android ProgressBarのスタイルカラーを変更する
-
Android Get set image.setImageResource(R.drawable.xxx) リソース
-
アンドロイドリストビュー
-
Android Studio http://schemas.android.com/apk/res/android 「URIが登録されていません」の解決方法について
-
android.content.ActivityNotFoundException を解決します。Intent問題を処理するActivityが見つからない