RecyclerView で空のビューを表示するにはどうすればいいですか? 質問する

RecyclerView で空のビューを表示するにはどうすればいいですか? 質問する

私はレイアウトファイル内に特別なビューを配置することに慣れています。ListActivityドキュメントに記載されているデータがない場合に表示されます。このビューの ID は です"android:id/empty"

<TextView
    android:id="@android:id/empty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/no_data" />

新しいRecyclerView?

ベストアンサー1

が定義されている同じレイアウトにRecyclerView、 を追加しますTextView

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="vertical" />

<TextView
    android:id="@+id/empty_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:visibility="gone"
    android:text="@string/no_data_available" />

onCreateまたは適切なコールバックで、にフィードするデータセットRecyclerViewが空かどうかを確認します。データセットが空の場合、 もRecyclerView空です。その場合、メッセージが画面に表示されます。そうでない場合は、その可視性を変更します。

private RecyclerView recyclerView;
private TextView emptyView;

// ...

recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
emptyView = (TextView) rootView.findViewById(R.id.empty_view);

// ...

if (dataset.isEmpty()) {
    recyclerView.setVisibility(View.GONE);
    emptyView.setVisibility(View.VISIBLE);
}
else {
    recyclerView.setVisibility(View.VISIBLE);
    emptyView.setVisibility(View.GONE);
}

おすすめ記事