Reputation: 223
I've been looking for solutions for this problem for more than one hour now, but none is working. :/
I want to set the top margin of my TextView to a value depending on the integer position. But somehow the margins won't show up...
public void addElements(int position, String title,int colour, RelativeLayout ld){
int px = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
1,
res.getDisplayMetrics()
);
int pos = 168*px;
LayoutParams params;
params = new LayoutParams(LayoutParams.MATCH_PARENT,144*px);
params.setMargins(0, 168, 0, 0);
TextView tv = new TextView(activity);
tv.requestLayout();
tv.setBackgroundResource(colour);
tv.setText(title);
tv.setSingleLine(false);
ld.addView(tv, params);
}
Upvotes: 0
Views: 2458
Reputation: 2088
Try this:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 144);
params.setMargins(0, 168, 0, 0);
Upvotes: 1
Reputation: 162
LayoutMargins are reserved for ViewGroup's such as RelativeLayout, LinearLayout, etc. Most common Views such as a TextView use padding in order to add additional spacing.
This should work:
tv.setPaddingRelative(0,168,0,0);
Upvotes: 0