是否可以创建2个FirebaseListOptions<>基于模型类返回的值的选项?

时间:2018-03-08 09:27:40

标签: android firebase firebaseui

我正在尝试使用FirebaseListAdapter填充聊天消息。

以下是代码。

 FirebaseListOptions<UserChat> options = new FirebaseListOptions.Builder<UserChat>()
            .setQuery(queryforDisplayMessages, UserChat.class)
            .setLayout(R.layout.chat_user2_item)
            .setLifecycleOwner(this)
            .build();

    final FirebaseListAdapter<UserChat> adapter=new FirebaseListAdapter<UserChat>(
            options
    )       {

        @Override
        protected void populateView(View v, UserChat model, int position) {

            Log.d(TAG,"Inside populateView");
            TextView tv=(TextView)v.findViewById(R.id.textview_message);
            tv.setText(model.getMessage());

        }
    };

    listView.setAdapter(adapter);

我必须区分发送的聊天和收到的聊天。因此,在FirebaseListOptions选项中,我必须使用2种不同的布局,具体取决于是否发送了聊天或聊天。我在UserChat模型类中有一个名为UserModel的值,如果发送或接收聊天,我可以从中区分。但是如何在上面的代码中使用它并创建2个不同的FirebaseListOptions?

2 个答案:

答案 0 :(得分:1)

从listoptions更改为recycleler选项,这将允许您每次使用recycleler视图创建自定义布局比列表视图有更多选项

答案 1 :(得分:1)

不,但我猜你正在寻找一种基于模型显示不同视图的方法。这可以通过视图类型实现:https://stackoverflow.com/a/26245463/4548500