Ich habe ein lineares Layout, das in einem relativen Layout enthalten ist. Es ist in der XML-Datei so eingestellt, dass es sich rechts von einem anderen linearen Layout befindet (dies funktioniert einwandfrei). In einigen Fällen möchte ich die relative Position des Layouts während des onCreate der Aktivität ändern, sodass ich den Parameter "rechts von" ändern muss, um ihn auf ein anderes Layout zu beziehen. Ich habe es versucht:
RelativeLayout.LayoutParams layoutParams;
layoutParams = (RelativeLayout.LayoutParams) linearLayoutToMove
.getLayoutParams();
layoutParams.addRule(RelativeLayout.RIGHT_OF,
R.id.new_ref_LinearLayout);
Aber es funktioniert nicht: o (
Irgendwelche Hinweise ?
quelle
0
ähnelt dem Entfernen der Regel.Ich denke, Sie müssen anrufen:
relativeLayout.updateViewLayout(linearLayoutToMove, layoutParams);
nach dem Ändern der LayoutParams.
Als Antwort auf die Bearbeitung können Sie neue LayoutParameter erstellen, indem Sie:
LinearLayout.LayoutParams = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
und fügen Sie dann Ihre neuen Regeln hinzu. Aktualisieren Sie anschließend die Layoutparameter mit der zuvor erwähnten Methode updateViewLayout ().
quelle
Fügen Sie den folgenden Code zu Ihrem vorhandenen Code hinzu
linearLayoutToMove.setLayoutParams(layoutParams)
Ich denke, das sollte den Job machen. Falls die obige Leitung nicht funktioniert, versuchen Sie,
linearLayoutToMove.invalidate()
nach der obigen Leitung anzurufen .quelle