У меня есть макет с 8 просмотрами переработчика и 8 просмотрами изображений с текстовыми представлениями, все из которых настроены на отображение с каждым просмотром переработчика, соответствующим конкретному c пользователю. 8 recyclerviews для 8 пользователей
Когда пользователь нажимает на пустой значок mi c, база данных firebase обновляется, и в этой комнате назначается место с данными пользователя, изображением изображения и видимость просмотра текста отключена, а видимость реселлера - видимой.
Проблема в том, что когда пользователь покидает комнату, база данных удаляет пользователя с этого места, но компоновка нарушается для других пользователей, просматривающих комнату. Видимости изображений и текстовых изображений снова становятся видимыми, а видимости реселлера - нет. Но это не работает. Это макет после того, как пользователь покидает комнату.
Есть ли способ уведомить всех пользователей о настройке макета, как только пользователь покидает комнату, если этот пользователь находился на месте.
У меня есть просмотр и просмотр изображений, а также просмотр текста в одном и том же месте для каждого отдельного места mi c.
Код для извлечения данных из базы данных и настройки видимости
private void seat1(){
Intent i = getIntent();
final String RoomID = i.getStringExtra(ConstantApp.ACTION_KEY_ROOM_NAME);
RFirebaseInstance = FirebaseDatabase.getInstance();
// get reference to 'users' node
RFirebaseDatabase = RFirebaseInstance.getReference("users" + "/" + RoomID + "/" + "seatlist" + "/");
//Toast.makeText(this, "path " + RFirebaseDatabase, Toast.LENGTH_LONG).show();
seat1 = new ArrayList<>();
seatadaper1 = new SetSeatRecyclerAdapter1(this, seat1);
seat1rec.setAdapter(seatadaper1);
RDBListener = RFirebaseDatabase.addValueEventListener(new ValueEventListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.child("seatone").exists()){
aud1.setVisibility(View.GONE);
audtext1.setVisibility(View.GONE);
seat1.clear();
for (DataSnapshot teacherSnapshot : snapshot.getChildren()) {
try {
Users_Home upload = teacherSnapshot.getValue(Users_Home.class);
upload.setId(teacherSnapshot.getKey());
seat1.add(upload);
} catch (Exception e) {
e.printStackTrace();
}
}
seatadaper1.notifyDataSetChanged();
Toast.makeText(LiveRoomActivity.this, "seat1 " + seatadaper1.getItemCount(), Toast.LENGTH_SHORT).show();
}else
{
aud1.setVisibility(View.VISIBLE);
audtext1.setVisibility(View.VISIBLE);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
log.debug("Error =======.=============.============= => " + databaseError);
}
});
seatadaper1.setOnItemClickListener(new SetSeatRecyclerAdapter1.OnItemClickListener() {
@Override
public void onItemClick(int position) {
//Toast.makeText(LiveRoomActivity.this, "clicked user => " + seat1.get(position).getName(), Toast.LENGTH_SHORT).show();
}
@Override
public void onShowItemClick(int position) {
}
@Override
public void onDeleteItemClick(int position) {
}
});
}