Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b922a75

Browse files
committed
improve UX by preventing recyclerview auto scroll to TOP for quiz
1 parent 7c22323 commit b922a75

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

app/src/main/java/com/example/nobulijava/activity/AdminQuizListActivity.java

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.example.nobulijava.activity;
22

3+
import androidx.annotation.NonNull;
34
import androidx.appcompat.app.AppCompatActivity;
45
import androidx.recyclerview.widget.RecyclerView;
56

@@ -10,6 +11,8 @@
1011
import com.example.nobulijava.R;
1112
import com.example.nobulijava.adapters.QuizAdapter;
1213
import com.example.nobulijava.model.QuizObj;
14+
import com.google.android.gms.tasks.OnCompleteListener;
15+
import com.google.android.gms.tasks.Task;
1316
import com.google.android.material.floatingactionbutton.FloatingActionButton;
1417
import com.google.firebase.database.DataSnapshot;
1518
import com.google.firebase.database.DatabaseError;
@@ -27,6 +30,8 @@ public class AdminQuizListActivity extends AppCompatActivity {
2730
private DatabaseReference mDatabase;
2831

2932
private ArrayList<QuizObj> quizObjArrayList;
33+
QuizAdapter quizAdapter;
34+
3035
@Override
3136
protected void onCreate(Bundle savedInstanceState) {
3237
super.onCreate(savedInstanceState);
@@ -45,34 +50,26 @@ public void onClick(View v) {
4550
startActivity(new Intent(AdminQuizListActivity.this, AdminQuizAddActivity.class));
4651
}
4752
});
53+
54+
quizObjArrayList = new ArrayList<>();
55+
quizAdapter = new QuizAdapter(quizObjArrayList, AdminQuizListActivity.this);
56+
recyclerViewQuizList.setAdapter(quizAdapter);
57+
4858
mDatabase.child("Quiz").addValueEventListener(new ValueEventListener() {
4959
@Override
5060
public void onDataChange(DataSnapshot dataSnapshot) {
51-
quizObjArrayList = new ArrayList<>();
52-
for (DataSnapshot quizSnapshot: dataSnapshot.getChildren()) {
61+
quizObjArrayList.clear();
62+
for (DataSnapshot quizSnapshot : dataSnapshot.getChildren()) {
5363
QuizObj quizObj = quizSnapshot.getValue(QuizObj.class);
5464
quizObj.setQuizID(quizSnapshot.getKey());
5565
quizObjArrayList.add(quizObj);
56-
5766
}
58-
QuizAdapter quizAdapter = new QuizAdapter(quizObjArrayList, AdminQuizListActivity.this);
59-
recyclerViewQuizList.setAdapter(quizAdapter);
60-
//TODO when delete item, recyclerview scrolls back to top
67+
quizAdapter.notifyDataSetChanged();
6168
}
6269

6370
@Override
6471
public void onCancelled(DatabaseError databaseError) {
6572
}
6673
});
67-
68-
69-
70-
71-
72-
73-
74-
7574
}
76-
77-
7875
}

app/src/main/res/layout/template_quiz.xml

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
android:layout_width="wrap_content"
2121
android:layout_height="wrap_content"
2222
android:layout_marginStart="8dp"
23+
android:layout_marginTop="16dp"
2324
android:text="1."
24-
app:layout_constraintBottom_toBottomOf="parent"
2525
app:layout_constraintStart_toStartOf="parent"
2626
app:layout_constraintTop_toTopOf="parent" />
2727

@@ -31,9 +31,7 @@
3131
android:layout_height="wrap_content"
3232
android:layout_marginStart="16dp"
3333
android:layout_marginTop="16dp"
34-
android:layout_marginBottom="16dp"
3534
android:text="Question"
36-
app:layout_constraintBottom_toBottomOf="parent"
3735
app:layout_constraintStart_toEndOf="@+id/textView_quizList_quizNo"
3836
app:layout_constraintTop_toTopOf="parent" />
3937

@@ -42,10 +40,20 @@
4240
android:layout_width="wrap_content"
4341
android:layout_height="wrap_content"
4442
android:layout_marginStart="16dp"
43+
android:layout_marginTop="16dp"
4544
android:text="Answer"
46-
app:layout_constraintBottom_toBottomOf="parent"
4745
app:layout_constraintStart_toEndOf="@+id/textView_quizList_question"
4846
app:layout_constraintTop_toTopOf="parent" />
47+
48+
<ImageView
49+
android:id="@+id/imageView_quizList_image"
50+
android:layout_width="0dp"
51+
android:layout_height="100dp"
52+
android:layout_marginTop="16dp"
53+
app:layout_constraintBottom_toBottomOf="parent"
54+
app:layout_constraintEnd_toEndOf="parent"
55+
app:layout_constraintStart_toStartOf="parent"
56+
app:layout_constraintTop_toBottomOf="@+id/textView_quizList_question" />
4957
</androidx.constraintlayout.widget.ConstraintLayout>
5058

5159

0 commit comments

Comments
 (0)