【问题标题】:FirebaseListAdapter emptyViewFirebaseListAdapter 空视图
【发布时间】:2018-07-23 20:07:43
【问题描述】:

我正在使用 FirebaseListAdapter 并覆盖所需的 onPopulateView 方法以从实时数据库中收集数据,然后将适配器设置为 UI 中的 ListView:

mMessageSummaryAdapter = new FirebaseListAdapter<MessageSummary> (getActivity(),
            MessageSummary.class, R.layout.message_list_item, mChatDbReference) {
        @Override
        protected void populateView(View v, MessageSummary msgSummary, int position) {
                final ImageView buddyImage = (ImageView) v.findViewById(R.id.small_image_view_messages);
                final TextView buddyName = (TextView) v.findViewById(R.id.contact_username);
....
mListView.setAdapter(mMessageSummaryAdapter);

使用我使用过的其他适配器,可以检查进入它的数据是否为空,并相应地设置视图的可见性,如果数据为空,则拉入一个空视图:

  if (foundRoutesList == null || foundRoutesList.size() == 0) {
        mEmptyView.setVisibility(View.VISIBLE);
        mRecyclerView.setVisibility(View.GONE);
    } else {
        mEmptyView.setVisibility(View.GONE);
        mAdapter = new SearchResultsAdapter(getContext(), foundRoutesList, this);
        mRecyclerView.setAdapter(mAdapter);
    }

据我了解,FirebaseListAdapter 会遍历找到的项目并一一添加,那么我如何测试结果是否为空,以便显示空文本视图?

【问题讨论】:

    标签: android firebase-realtime-database firebaseui


    【解决方案1】:

    要解决这个问题,请在您的适配器类中覆盖 FirebaseListAdapter 的 getCount() 方法并检查是否为 null:

    if(getCount() == 0) {
        mEmptyView.setVisibility(View.VISIBLE);
        mRecyclerView.setVisibility(View.GONE);
    } else {
        mEmptyView.setVisibility(View.GONE);
        mAdapter = new SearchResultsAdapter(getContext(), foundRoutesList, this);
        mRecyclerView.setAdapter(mAdapter);
    }
    

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 2017-11-07
      • 2017-07-19
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      相关资源
      最近更新 更多