2017-04-18 1 views
0

Ich erstelle eine Reihe von Bearbeitungstexten nebeneinander mit RelativeLayout programmgesteuert. Die Standardbreite für jeden bearbeiteten Text ist wrap_content. Wenn der bearbeitete Text jedoch den Rand des Bildschirms erreicht, ändert er visuell seine Größe. Also, wie kann ich es in die nächste Zeile verschieben, wenn dies passiert?Wie ändert man die Position von Text bearbeiten programmatisch in Android?

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; 
} 
+0

Verwenden Linearlayout mit horizontaler Ausrichtung statt RelativeLayout. – Sergey

+0

@Sergey, aber ich brauche RelativeLayout in meinem Projekt ... –

+0

Ich glaube nicht, dass mit RelativeLayout Sie erreichen, was Sie wollen, bcz ich sehe Regel RelativeLayout.BELOW und es wird immer unterhalb Ihres TextView. – Sergey

Antwort

0

Was Sie ausprobieren können. Nicht sicher, ob es funktioniert. was Sie tun können, ist die Breite des Bildschirms auf onCreate zu berechnen und eine Überprüfung, ob die Ansicht das übersteigt, einen neuen Verwandten unter dem letzten zu machen. Um ehrlich zu sein, wird lineares Layout mit Gewichtseigenschaften einfacher zu pflegen sein.

1

Versuchen Sie FlowLayout in android und dynamiaclly TextViews darin aufblasen.

Anstatt, dass Sie Linearlayout mit einer festen Anzahl von Kindern in jeder Zeile verwenden können, und wenn dies tun, müssen die Kinder die gleiche layout_weight haben.

Aber anstatt in so großen Streitigkeiten gehen i Sie wird einfach verlangen RelativeLayout ersetzen Mit Flow in android

Verwandte Themen