gpt4 book ai didi

android - 如何设置每个 cardview 在 recyclerview 中的位置?

转载 作者:行者123 更新时间:2023-11-29 02:22:45 25 4
gpt4 key购买 nike

我正在制作一个应用程序,它获取 Firebase 中一个表的所有用户,并在 CardView 中显示他们,但我希望管理员出现在其他用户之前。

对于这种区分,所有用户都被保存到系统中,并带有一个名为 type 的属性,该属性表明他们是普通用户还是管理员。

这是 TelaChat.java 文件:

public class TelaChat extends AppCompatActivity {

private RecyclerView recyclerView;
private DatabaseReference databaseReference;
private FirebaseRecyclerOptions<Usuario> options;
private FirebaseRecyclerAdapter<Usuario, ChatAdapter> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
setTitle("Tela de Chat");

recyclerView = findViewById(R.id.cm_rv_membros);
recyclerView.setHasFixedSize(true);
databaseReference = FirebaseDatabase.getInstance().getReference().child("usuario");

options = new FirebaseRecyclerOptions.Builder<Usuario>().setQuery(databaseReference, Usuario.class).build();

adapter = new FirebaseRecyclerAdapter<Usuario, ChatAdapter>(options) {
@Override
protected void onBindViewHolder(ChatAdapter holder, int position, Usuario model) {
Picasso.with(holder.ivFoto.getContext()).load(model.getImageURL()).centerCrop().resize(140, 140).transform(new ImageTrans_CircleTransform2()).into(holder.ivFoto);
holder.tvNome.setText(model.getNome());
holder.tvTipo.setText(model.getTipo());
}

@Override
public ChatAdapter onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_card, parent, false);
return new ChatAdapter(view);
}
};

GridLayoutManager gridLayoutManager = new GridLayoutManager(getApplicationContext(), 1);
recyclerView.setLayoutManager(gridLayoutManager);
adapter.startListening();
recyclerView.setAdapter(adapter);
}

这是 ChatAdapter.java 文件:

public class ChatAdapter extends RecyclerView.ViewHolder{

public ImageView ivFoto;
public TextView tvNome;
public TextView tvTipo;

public ChatAdapter(View itemView) {
super(itemView);

ivFoto = itemView.findViewById(R.id.cc_iv_foto);
tvNome = itemView.findViewById(R.id.cc_tv_nome);
tvTipo = itemView.findViewById(R.id.cc_tv_tipo);
}
}

我在 Internet 上查找了一些教程,但没有一个说明我想做什么。有人可以帮助我吗?

最佳答案

尝试添加:orderByChild("type")

databaseReference = FirebaseDatabase.getInstance().getReference().child("usuario").orderByChild("type");

或在这里:

options = new FirebaseRecyclerOptions.Builder<Usuario>().setQuery(databaseReference.orderByChild("type"), Usuario.class).build();

抱歉,我现在无法测试它,希望它有效。

关于android - 如何设置每个 cardview 在 recyclerview 中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54258941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com