public void changeposition (int button){
int whichPos = rand.nextInt(3) + 1;
if(button == 1){
switch(whichPos) {
case 1: dirup.setPadding(0, 0, 284, 128);
case 2: dirup.setPadding(0, 0, 156, 88);
case 3: dirup.setPadding(0, 0, 24, 128);
}
}
}
Ich verwende Relative Layout und ich habe 2 Schaltflächen, die auf 3 verschiedene Standorte mit zufälligen Zufall verschieben können. Wie kann ich es in Java-Code tun, der Code oben tut fast nichts, es macht nur den Text in meiner Schaltfläche verschwinden, aber lassen Sie es an der gleichen Stelle.Verschieben der Schaltfläche in der Anwendung dynamisch
<Button
android:id="@+id/buttonDirection"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_alignBaseline="@+id/button4"
android:layout_alignBottom="@+id/button4"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="88dp"
android:layout_marginEnd="156dp"
android:background="@drawable/circlered"
android:rotation="90"
android:text="@string/direction"
android:textAlignment="center"
android:textSize="50sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginRight="156dp" />
So wird die Schaltfläche jetzt in XML definiert.
ich eine Fehlermeldung anzeigt, wenn dieser Ansatz mit 'java.lang.ClassCastException: android.support.constraint.ConstraintLayout $ LayoutParams kann nicht auf android.widget.RelativeLayout $ LayoutParams' – Tom
gegossen werden, das bedeutet, dass Sie eine RelativeLayout nicht mit wie du erwähnt hast. die LayoutParams hängt von der übergeordneten Ansicht ab –
Ähm, du hast recht, mein Fehler ConstraintLayout, sollte ich zu Relative wechseln oder kann ich es auch in diesem Layout tun? – Tom