Android 如何使用TextWatcher实现firebase回收器?

Android 如何使用TextWatcher实现firebase回收器?,android,firebase,android-recyclerview,firebaseui,Android,Firebase,Android Recyclerview,Firebaseui,我已经在我的应用程序中实现了Firebase回收器。使用text watcher时一切正常,但当键盘向上时,recycler视图不会在onTextChanged中更新,并在我按下键盘向下时立即更新 这是我的代码: private TextWatcher textWatcher = new TextWatcher() { public void afterTextChanged(Editable s) { } public void before

我已经在我的应用程序中实现了Firebase回收器。使用text watcher时一切正常,但当键盘向上时,recycler视图不会在
onTextChanged
中更新,并在我按下键盘向下时立即更新

这是我的代码:

private TextWatcher textWatcher = new TextWatcher() {

        public void afterTextChanged(Editable s) {
        }

        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        public void onTextChanged(CharSequence s, int start, int before,
                                  int count) {
            if(s.toString().trim().length()<1)
            {
                mRecyclerView.setVisibility(View.GONE);
            }
            else
            {
                mRecyclerView.setVisibility(View.VISIBLE);
                firebaseSearch(s.toString());
            }
            Toast.makeText(ChooseUser.this,s.toString(),Toast.LENGTH_SHORT).show();
        }
    };
private TextWatcher TextWatcher=new TextWatcher(){
公共无效后文本已更改(可编辑){
}
更改前文本之前的公共void(字符序列s、int start、int count、int after){
}
public void onTextChanged(字符序列,int start,int before,
整数计数){
如果(s.toString().trim().length())
新用户(snapshot.child(“Name”).getValue().toString(),
snapshot.child(“Image”).getValue().toString(),
snapshot.getKey(),
snapshot.child(“Profile”).getValue().toString()
))
.build();
firebaseRecyclerAdapter=新的firebaseRecyclerAdapter(
选择权
) {
@凌驾
受保护的无效onBindViewHolder(@NonNull UsersViewHolder holder,int position,@NonNull Users model){
setDetails(getApplicationContext(),model.getName(),model.getImage());
}
@非空
@凌驾
public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup父级,int viewType){
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.search\u list\u项目,父项,false);
返回新的UsersViewHolder(视图);
}
};
firebaseRecyclerAdapter.startListening();
mRecyclerView.setAdapter(firebaseRecyclerAdapter);
}

我的代码中是否有任何更改,以便在输入单词时动态更新视图,并在键盘打开时显示recycler?

只是,我的代码中有
mRecyclerView.setHasFixedSize(true);
。 去掉这个,它就工作了

private void firebaseSearch(String searchText)
    {
        Query firebaseSearchQuery = databaseReference
                .orderByChild("Name")
                .startAt(searchText.toLowerCase())
                .endAt(searchText.toLowerCase() + "\uf8ff");

        FirebaseRecyclerOptions<Users> options =
            new FirebaseRecyclerOptions.Builder<Users>()
                    .setQuery(firebaseSearchQuery, snapshot ->
                            new Users(snapshot.child("Name").getValue().toString(),
                            snapshot.child("Image").getValue().toString(),
                                    snapshot.getKey(),
                                    snapshot.child("Profile").getValue().toString()
                            ))
                    .build();

        firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Users, UsersViewHolder>(
                options
        ) {
            @Override
            protected void onBindViewHolder(@NonNull UsersViewHolder holder, int position, @NonNull Users model) {

                    holder.setDetails(getApplicationContext(), model.getName(), model.getImage());

            }

            @NonNull
            @Override
            public UsersViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.search_list_items, parent, false);

                return new UsersViewHolder(view);
            }
        };
        firebaseRecyclerAdapter.startListening();
        mRecyclerView.setAdapter(firebaseRecyclerAdapter);
    }