[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
質問
私は、layout_width="match_parent"を持つRecyclerViewを含むフラグメントを持っています。
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity$PlaceholderFragment" />
RecyclerViewのアイテムもCardViewでlayout_width="match_parent"とします。
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="20dp"
card_view:cardCornerRadius="4dp">
<TextView
android:layout_gravity="center"
android:id="@+id/info_text"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
android:textAppearance="?android:textAppearanceLarge"/>
</android.support.v7.widget.CardView>
アイテムビューを以下のように膨らませています。
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
CardView v = (CardView) LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_listitem, null, true);
ViewHolder vh = new ViewHolder(v);
return vh;
}
しかし、アプリを実行すると、以下のようにCardViewはwrap_contentとしてレンダリングされます。
これは実機ではなく、エミュレータ上で実行されたことに注意してください。
何か間違ったことをしているのでしょうか、それともバグなのでしょうか?
どうすればよいのでしょうか?
のドキュメントは
inflate
:
指定されたxmlリソースから新しいビュー階層を展開します。スロー エラーが発生した場合は InflateException をスローします。
パラメータ
リソース ロードするXMLレイアウトリソースのためのID (例, R.layout.main_page) ルート
ビュー の親になります。 生成された階層の親であるか(attachToRootがtrueの場合)、さもなければ単に オブジェクトが返されます。 の値を提供するオブジェクトです(attachToRoot が false の場合)。
attachToRoot というのは は、膨張した階層をルートパラメータにアタッチするかどうか?もし falseの場合、rootは正しいサブクラスの LayoutParamsの正しいサブクラスを作成するためにのみ使用されます。Returns 膨張した階層のルートビューを返します。 を返します。rootが指定され、attachToRootがtrueの場合、これはrootとなります。 それ以外の場合は、XMLファイルのルートとなります。
ここで重要なのは ではなく を真にするのではなく する は親を供給する。
LayoutInflater.from(parent.getContext())
.inflate(R.layout.card_listitem, parent, false);
を供給することで
parent
ビューを提供することで、インフレータはどのレイアウトパラメータを使うべきかを知ることができます。また
false
パラメータを与えることで、インフレータに
ではなく
を指定します。これが
RecyclerView
がやってくれることです。
関連
-
[解決済み] ScrollView 内の RecyclerView が動作しない。
-
[解決済み] RecyclerViewでmatch_parent widthが機能しない。
-
[解決済み] 設定ページに移動せずに位置情報サービスをオンにする
-
[解決済み] 文字列からJSONオブジェクトへの変換 Android
-
[解決済み] エラーです。ステータス{statusCode=DEVELOPER_ERROR, resolution=null}.
-
[解決済み] メディアプレーヤーが状態0で呼び出され、エラー(-38,0)
-
[解決済み] OnScreen KeyboardのDoneキー押下を検出するAndroid
-
[解決済み] EclipseでADTを更新するにはどうしたらいいですか?
-
[解決済み] サポート(v21)ツールバーを使用した環境設定画面の作成
-
[解決済み] Android Studioからプロジェクトを削除する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】recyclerview アダプタが添付されていないため、レイアウトをスキップしています。
-
[解決済み] Androidでビットマップから円形領域を切り取る方法
-
[解決済み] AndroidでビューのonClickイベントをその親に渡すには?
-
[解決済み] Android Studio: キーの復元ができない
-
[解決済み] Androidです。複数のアクティビティと手動でのビュー切り替え、どちらが良いですか?
-
[解決済み] 確認(yes/no)用のDialogPreferenceを実装するには?
-
[解決済み] Android: 複数の選択オプションを持つポップアップを作成する
-
[解決済み] Android: ActionBarのホームアイコンをアプリのアイコンでないものに変更するには?
-
[解決済み] Android Studioのユニットテスト: データ(入力)ファイルの読み込み
-
[解決済み] PreferenceFragmentCompatはpreferenceThemeが設定されている必要があります。