[解決済み] LinearLayoutManagerでRecyclerViewの上部にスクロールする
2023-05-21 08:03:33
質問
あるフラグメントに
RecyclerView
と
LinearLayoutManager
がある中で
CardView
の項目がある。クリックすると、アイテムが一番上にスクロールするフローティングアクションボタンがあります。私は
scrollToPosition
と同様に
scrollToPositionWithOffset
と
RecyclerView
で、さらに
LinearLayoutManager
を使っても、以下のようになります。しかし、全く効果がありません。これはなぜなのでしょうか?どなたかご教授ください。
そして、私は
RecyclerView
の中に直接
SwipeRefreshView
の中にあります。私は
setFloatingActionButton
に設定すると同時に
RecyclerView
.
public void setFloatingActionButton(final View view) {
float = (android.support.design.widget.FloatingActionButton) getActivity().findViewById(R.id.float);
float.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRecyclerView.smoothScrollToPosition(0);
android.support.design.widget.Snackbar.make(view, "Scrolled to Top", android.support.design.widget.Snackbar.LENGTH_SHORT)
.setAction("Ok", new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayoutManager llm = (LinearLayoutManager) mRecyclerView.getLayoutManager();
llm.scrollToPosition(0);
}
})
.setActionTextColor(getActivity().getResources().getColor(R.color.coloLink))
.show();
}
});
}
どのように解決するのですか?
上記のコメントの続きで、理想的な方法は
mRecyclerView.smoothScrollToPosition(0);
の中に
onClick
でフローティングアクションボタンの
mLayoutManager.scrollToPositionWithOffset(0, 0);
は動作するはずです。また
SnackBar
のコードも削除できます。つまり、上記のメソッドは次のようになります。
public void setFloatingActionButton(final View view) {
float actionButton = (android.support.design.widget.FloatingActionButton) getActivity()
.findViewById(R.id.float);
actionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayoutManager layoutManager = (LinearLayoutManager) mRecyclerView
.getLayoutManager();
layoutManager.scrollToPositionWithOffset(0, 0);
}
});
}
もし、上記がうまくいかないと言うのなら、次に
onClick()
が呼び出されているかどうかをテストしてください。その中にログメッセージを入れてみて、それが出力されるかどうか見てみましょう。
関連
-
[解決済み] RecyclerView onClick
-
[解決済み】RecyclerViewをスクロールして、選択したアイテムを一番上に表示させる。
-
[解決済み] AndroidにおけるViewPager2の適切な実装
-
[解決済み] アンドロイドフラグメント onRestoreInstanceState
-
[解決済み] AndroidでラジオボタンにOnClickListenerを設定するには?
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] Gradleでビルドタイプを使用し、ContentProviderを使用する同じアプリを1つのデバイスで実行する。
-
[解決済み] キャンバスに複数行のテキストを描画する
-
[解決済み] google-services.jsonって実際何してるの?
-
[解決済み] アンドロイドボタンセレクター
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] プログラムでソフトキーボードを開く
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] アンドロイドのクライアントでヒープアップデートを有効にする方法
-
[解決済み] EditTextの右側のDrawableにonClickListenerを設定する [重複] [重複
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] アダプタからActivityメソッドを呼び出す
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] Android APKファイルの中身を見るには?
-
[解決済み] Travis.yml ./gradlew : パーミッションが拒否されました。
-
[解決済み] 文字列リソースにHTML?