Reputation: 65
I'm creating a number of edit texts next to each other programmatically using RelativeLayout. The default width of each edit text is wrap_content, but when the edit text reaches the edge of the screen, it visually changes it's sizes. So how can I make it move to the next line when this happens?
private EditText createEditText(EditText editText1, EditText editText2, String word){
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
editText.getLayoutParams().width,
editText.getLayoutParams().height
);
layoutParams.addRule(RelativeLayout.RIGHT_OF, editText1.getId());
layoutParams.addRule(RelativeLayout.BELOW, textView.getId());
layoutParams.leftMargin += 60;
editText2.setHint("" + word);
editText2.setHintTextColor(editText.getSolidColor());
editText2.setBackgroundResource(R.drawable.rounded_edittext);
editText2.setLayoutParams(layoutParams);
editText2.setPadding(editText.getPaddingLeft(), editText.getPaddingTop(), editText.getPaddingRight(), editText.getPaddingBottom());
editText2.setId(View.generateViewId());
relativeLayout.addView(editText2);
return editText2;
}
Upvotes: 0
Views: 842
Reputation: 129
Try FlowLayout in android and dynamiaclly inflate TextViews in it.
Rather than that you can use Linearlayout with fixed number of children in each row and if doing this the children must having same layout_weight.
But rather than going in such big disputes i will request you to simply replace RelativeLayout With FlowLayout in android
Upvotes: 1
Reputation: 240
What you can try. Not sure, if it will work. what you can do is calculate the width of screen on onCreate and make a check if the view exceeds that, make a new relative below the last one. To be honest linear layout will be more easier to maintain using weight property.
Upvotes: 0