こんにちは、まっさん(@Tera_Msaki)です。
この記事はAndroidスマホ用のアプリ開発の中で、
今後の開発で再使用性が高いと思われるコーディングをまとめたものです。
Javaでの開発経験、XML構文規則、Androidのアプリ開発経験がある方を対象としています。
Androidのアプリ開発でお役にたててれば、嬉しいです。
(これからAndroidのアプリ開発やJavaでの開発を始めたい方への案内は、記事の最後で紹介します)
RecyclerViewのスワイプ操作を一時的に無効する
普段は仕事部屋の冷蔵庫として愛用してます。
外出先ではマキタのバッテリでも動作するので、とっても便利♪
◎ポイント
Andoridアプリの開発で、
リスト表示する場合に、RecyclerView を使用することが多いと思います。
リストからのデータ削除や画面遷移などをRecyclerにスワイプ操作を実装した場合、
処理中にデータの削除や画面遷移が行われると、
処理の継続性や操作性に問題が発生することがあります。
処理の実行中などで、
スワイプ操作を一時的に無効にする仕組みを実装したいと思います。

クリック操作の無効化
RecyclerView(motionView)のsetOnItemClickListener に
操作させる条件を記述します。
処理中の判断として、ボタンの表示とタイトルを操作させる条件とします。
:
motionView.setAdapter(motionAdapter);
motionView.setOnItemClickListener((view, position) -> {
if (recording.getVisibility() == View.VISIBLE && recording.getText().equals(context.getString(R.string.recording))) {
// 処理中でない場合の操作
:
}
});
:
スワイプ操作の無効化
RecyclerView(motionView)にアタッチするItemTouchHelper のgetMovementFlags に
操作させる条件を記述します。
処理中の判断として、ボタンの表示とタイトルを操作させる条件とします。
:
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(
ItemTouchHelper.ACTION_STATE_IDLE, ItemTouchHelper.LEFT) {
@Override
public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) {
int swipeFlags = recording.getVisibility() == View.VISIBLE && recording.getText().equals(context.getString(R.string.recording)) ? ItemTouchHelper.LEFT : 0;
return makeMovementFlags(0, swipeFlags);
}
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull VerticalListView.ViewHolder viewHolder, int direction) {
// 処理中でない場合の操作
:
}
});
itemTouchHelper.attachToRecyclerView(motionView);
:
今回は、ここまでです。
RecyclerViewのスワイプ操作を無効化を使用している Androidアプリです。
誤字脱字、意味不明でわかりづらい、
もっと詳しく知りたいなどのご意見は、
このページの最後にあるコメントか、
こちらから、お願いいたします♪
ポチッとして頂けると、
次のコンテンツを作成する励みになります♪

これからAndroidのアプリ開発やJavaでの開発を始めたい方へ
初めてのAndroidのアプリ開発では、アプリケーション開発経験がない方や、
アプリケーション開発経験がある方でも、JavaやC#などのオブジェクト指向言語が初めての方は、
書籍などによる独学ではアプリ開発できるようになるには、
かなりの時間がかかりますので、オンラインスクールでの習得をおススメします。
副業でアプリケーション開発と考えているなら、おススメです。
無料説明会に参加して、話を聞くだけでもためになるよ♪

ITスキルを身に付け、キャリアアップ。オンライン授業で仕事と両立できます。
まずは資料請求から♪
未経験者からシステムエンジニアを目指すのに最適かと、
まずは無料相談から♪

無料でJava言語を学べるのは、かなり魅力的♪
でも、応募資格は35歳以下です、、、
2022年12月から説明会が土曜日開催が追加されていますよ♪
説明会では、希望者に対してプログラミング体験もできるよ♪

未経験者からプログラマーを目指すのに最適かと、
まずは無料カウンセリングから♪

カリキュラムとサポートがしっかりしています、
お得なキャンペーンとかいろいろやっています♪

ゲーム系に強いスクール、UnityやUnrealEngineを習得するのに最適かと、
まずは無料オンライン相談から♪

参考になったら、💛をポッチとしてね♪
コメント欄