Set Margin On Recyclerview Programmatically
I need to set the top margin on a RecyclerView programmatically, but I get this exception: java.lang.RuntimeException: Unable to resume activity java.lang.ClassCastException: andr
Solution 1:
Try this out. You can refer to this for more info.
ViewGroup.MarginLayoutParamsmarginLayoutParams=newViewGroup.MarginLayoutParams(mRecyclerView.getLayoutParams());
marginLayoutParams.setMargins(0, 10, 0, 10);
mRecyclerView.setLayoutParams(marginLayoutParams);
Solution 2:
for me, the parent of recyclerview
is a constraintLayout
,
val margins = (rv.layoutParams as ConstraintLayout.LayoutParams).apply {
leftMargin = 0
rightMargin = 0
}
rv.layoutParams = margins
or it will get cast error, viewGroup.LayoutParams can't be cast to COnstarintLayout.LayoutParams
Solution 3:
You need use new object of MargingLayoutParams
final FrameLayout.MarginLayoutParams marginLayoutParams =new
FrameLayout.MarginLayoutParams(rvContacts.getLayoutParams());
marginLayoutParams.leftMargin =left;
marginLayoutParams.topMargin = top;
marginLayoutParams.rightMargin =right;
marginLayoutParams.bottomMargin = bottom;
recyclerView.setLayoutParams(marginLayoutParams);
recyclerView.requestLayout();
Solution 4:
I am also facing this type of issue, Use below code to handle margin issue of recyclerview.
ViewGroup.MarginLayoutParams marginLayoutParams=
(ViewGroup.MarginLayoutParams) recyclerView.getLayoutParams();
// here i try to set only top margin, Get dimension from dimension file.int topMargin = getResources()
.getDimensionPixelSize(R.dimen.top_margin);
marginLayoutParams.setMargins(marginLayoutParams.getMarginStart(),
topMargin, marginLayoutParams.getMarginEnd(), marginLayoutParams.bottomMargin);
recyclerView.setLayoutParams(marginLayoutParams);
Solution 5:
Padding usage with clipToPadding="false" did the trick in my case. [Kotlin]
So I added android:clipToPadding="false"
to my RecyclerView in xml.
Can be done programmatically as well.
And then just used:
recyclerView.setPadding(10, 0, 0, someSpace)
someSpace
is dp variable in case you need it.
resources.getDimension(R.dimen.some_space).toInt()
P.S don't forget to create some_space in dimension file :)
Post a Comment for "Set Margin On Recyclerview Programmatically"