xmlを使用せずにRecyclerView行の余白を設定する場合は、2行あり、余裕を動的に変更する必要があるためです。しかし、私がプログラムを起動するときに余裕は設定されていません。私が間違ったことを答えた人がいますか?xmlを使用しないRecyclerViewアダプタの余白を設定する
理解するために私のxmlファイル:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:focusable="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:clickable="true"
android:background="?android:attr/selectableItemBackground"
android:orientation="vertical">
<TextView
android:id="@+id/settingTitle"
android:textColor="@color/colorBlack"
android:layout_width="match_parent"
android:textSize="16dp"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/settingSubtitle"
android:layout_below="@id/settingTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
これは私のアダプタからの私の[OnBind]のである:
@Override
public void onBindViewHolder(MySettingHolder holder, int position) {
// Setting for one entry
Settings setting = settingList.get(position);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
// If the settingSubtitle is empty it should be not visible and just the settingTitle
if (setting.getSettingSubtitle().equals("")) {
params.setMargins(0, 18, 0, 18);
holder.settingTitle.setLayoutParams(params);
holder.settingTitle.setText(setting.getSettingTitle());
holder.settingSubtitle.setVisibility(View.GONE);
} else {
// Set Margins for settingTitle
params.setMargins(0, 18, 0, 18);
holder.settingTitle.setLayoutParams(params);
// Set Margins for settingSubtitle
params.setMargins(0, 0, 0, 18);
holder.settingSubtitle.setLayoutParams(params);
holder.settingTitle.setText(setting.getSettingTitle());
holder.settingSubtitle.setText(setting.getSettingSubtitle());
}
}
paramsをrecyclerviewに設定する必要があります –
@santoshkumarそして、私はここで何をしていると思いますか? – ItsOdi1
recyclerview.setParams(params); –