[Android]RecyclerViewにアイテムが1つしか表示されない

現象


データベースからデータを読み取ってRecyclerViewで一覧表示をしたい。データベースには複数登録されているはずなのに、RecyclerViewには1つしか表示されない。前回と違い、RecyclerView.AdapterのgetItemCount()は適切に設定されている。



原因


個々のviewをxmlファイルで定義して、コンストラクタのnewViewメソッドでinflateしている。このinflate元のxmlファイルにおいて、1番外のlayoutのlayout_heightがmatch_parentになっていたこと。wrap_contentに変更したら無事すべてのアイテムが表示された。


@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {

    View inflate= LayoutInflater.from(context).inflate(R.layout.row, parent, false);

    return inflate;
}

row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"  //ここ!



最新記事

すべて表示

課題 androidのBottomNavigationを使用したアプリを作っている。ページを移動して戻って来た時にTextViewなどに書き込んだデータを保存しておきたい。 問題点 通常ActivityやFragmentを離れて戻って来た時にviewの内容などを保存したいときはonSaveInstanceState()でBundleにデータを保存し、戻って来た時にonCreateView()などで

現象 SQLiteDataBaseをContentProviderで読み取ってRecyclerViewに一覧表示している。データベースの内容を更新してもそれがRecyclerViewに反映されない。 原因 ContentProviderのquery()メソッドでsetNotificationUri()メソッドを呼び出していなかった。 このメソッドでcursorにデータのuriが紐づけられ、Curs

靴を大切にしよう!靴管理アプリ SHOES_KEEP

納品:iPhone6.5①.png

靴の履いた回数、お手入れ回数を管理するアプリです。

google-play-badge.png
Download_on_the_App_Store_Badge_JP_RGB_blk_100317.png

テーマ日記:テーマを決めてジャンルごとに記録

訂正①2040×1152.jpg

ジャンルごとにテーマ、サブテーマをつけて投稿、記録できる日記アプリです。

google-play-badge.png