我正在使用Firebase-UI的@Override
。列表工作正常,但我无法在SearchView中实现过滤器。
我的用户数据库: Firebase用户
FirebaseRecyclerAdapter
被修改
我在onQueryTextSubmit上尝试了这个代码,过滤器工作但行为很奇怪。
private DatabaseReference reference = FirebaseDatabase.getInstance().getReference().child("users");
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
recyclerView = (RecyclerView) findViewById(R.id.rv);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);
UserAdapter userAdapter = new UserAdapter(
User.class,
R.layout.user,
UserAdapter.UserViewHolder.class,
reference
);
recyclerView.setAdapter(userAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_activity, menu);
MenuItem item = menu.findItem(R.id.search);
searchView = (SearchView) MenuItemCompat.getActionView(item);
searchView.setOnQueryTextListener(this);
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// ???
return true;
}
有没有办法更新FirebaseRecyclerAdapter查询? userAdapter.updateQuery()之类的东西?
注意
Android的FirebaseUI适配器尚不支持客户端过滤。添加此请求的请求在this Github issue。
中进行跟踪