2017-02-02 2 views
1

einzustellen habe ich ein relativ Layout, das ich programmatisch erschaffe:Wie das align Mutter rechts Attribut Textviews in relativ Layout programmatisch

RelativeLayout layout = new RelativeLayout(this); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, 
     LayoutParams.WRAP_CONTENT); 

nun in diesem relativen Layout hinzufügen mag Ich habe zwei Textviews, die ich. Aber das Problem ist, dass beide TextViews auf der linken Seite des RelativeLayout übereinander liegen.

textViewContainer.addView(textView1); 
textViewContainer.addView(textView2); 

Jetzt möchte ich wissen, wie kann ich die die

`android:layout_alignParentRight="true"` 

oder

`android:layout_toLeftOf="@id/textView"` 

Attribut Textviews programmatisch festgelegt, wie wir in der XML tun?

+0

Diese Antwort helfen könnten: http://stackoverflow.com/questions/4638832/how-to-programmatically-set-the-layout-align-parent- right-attribute-a-button – sri

+0

Mögliches Duplikat von [Wie programmiere ich das Attribut Layout \ _align \ _parent \ _right eines Buttons im relativen Layout?] (http://stackoverflow.com/questions/4638832/how- to-programmatically-set-the-layout-align-parent-right-attribute-of-a-button) – RubioRic

Antwort

1

Sie alle LayoutParams von Code zugreifen können View.getLayoutParams verwenden. Sie müssen nur sehr bewusst sein, was LayoutParams Ihren Zugriff. Dies wird normalerweise erreicht, indem die enthaltene ViewGroup überprüft wird, wenn sie ein internes Child von LayoutParams hat, das dann verwendet werden sollte. In deinem Fall ist es RelativeLayout.LayoutParams. Sie werden RelativeLayout.LayoutParams#addRule(int verb) und verwenden RelativeLayout.LayoutParams#addRule(int verb, int anchor)

Sie es über den Code bekommen:

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)textView.getLayoutParams(); 
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
params.addRule(RelativeLayout.LEFT_OF, R.id.id_to_be_left_of); 

textView.setLayoutParams(params); //causes layout updat 
+0

Vielen Dank soo much.you speicherte meinen Tag – SoftIdea

+1

Kredit geben Sie der Antwort hier: http: //stackoverflow.com/ Fragen/4638832/how-to-programmatically-set-the-layout-align-übergeordnete-right-attribute-of-a- Taste – rafsanahmad007

0

Verwenden Sie die Methode addrule

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
0

Sie müssen LayoutParams zu jeder Ansicht auszurichten:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

Dann entsprechende Regel in den Jede Ansicht:

params.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE); 

zum ersten und

params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); 

auf den zweiten.

dann gilt es zu der Ansicht:

view.setLayoutParam(params) 
Verwandte Themen