从firebase回收站视图适配器中删除数据而不在数据库中删除

时间:2017-01-29 20:56:44

标签: android firebase android-recyclerview firebase-realtime-database

就是这样,我可以从firebase回收站视图适配器中删除一个视图,但不能在数据库中删除吗?如何?

 final FirebaseRecyclerAdapter<Game,GameViewHolder> firebaseRecyclerAdapter=new FirebaseRecyclerAdapter<Game, GameViewHolder>(
            Game.class,
            R.layout.row,
            GameViewHolder.class,
            mdatabase

    ) {
        @Override
        protected void populateViewHolder(GameViewHolder viewHolder, Game model, final int position) {

            viewHolder.setTitle(model.getGame_name());
            viewHolder.setJugado(model.getJugado());
            viewHolder.setCreator(model.getCreator_name());

    recyclerView.setAdapter(firebaseRecyclerAdapter);


}

3 个答案:

答案 0 :(得分:1)

FirebaseRecyclerAdapter不支持此功能。 FirebaseRecyclerAdapter的重点在于它与您最初提供它的位置的内容保持同步。如果某些内容从数据库中删除了数据,它将自动无条件地从您的适配器中删除。

如果您需要此行为,则必须实现自己的RecyclerView适配器,最好是不使用活动侦听器的适配器,以便在每次更改数据位置时收到通知。您只需要听一次整个内容,然后将其发送到适配器以填充RecyclerView。

答案 1 :(得分:0)

ViewHolder中的这个怎么样?

itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                itemView.setVisibility(View.INVISIBLE);
            }
        });

答案 2 :(得分:0)

是的,你可以。您必须在GameViewHolder课程中添加此内容:

  1. 创建一个函数并获取cardview的参考
  2. 创建布局参数并创建cardview父级的实例,然后设置高度和宽度等于0
  3. public  void  Remove() {
        cardView = mView.findViewById(R.id.cardview);
        cardView.setLayoutParams(new FrameLayout.LayoutParams(0,0));
    }
    
    1. 使用功能
    2. viewHolder.remove();