Android: Absolute Position einer Ansicht programmgesteuert ändern

Wenn Sie ein AbsoluteLayout verwenden (ich weiß, dass es veraltet ist, aber es war die einzige Möglichkeit, mein @ zu löseProble) Sie können den childViews den Tag @ gebeandroid:layout_x undandroid:layout_y um ihre absolute Position innerhalb des @ zu setzAbsoluteLayout.

Ich möchte diese Informationen jedoch nicht in der XML setzen, da ich sie nur zur Laufzeit kenne. Wie kann ich diese Parameter zur Laufzeit programmgesteuert einstellen? Ich sehe keine Methode in der Ansicht wieview.setLayoutX(int x) oder so

Hier ist mein XML, was gut funktioniert, wenn ich das @ setlayout_x undlayout_y Werte:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/myLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView
     android:src="@drawable/myImageView"
     android:layout_width="1298px"
     android:layout_height="945px"
     android:layout_x="0px"
  android:layout_y="0px" />
 <Button  
  android:id="@+id/myButton1"
  android:text="23"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:layout_x="50px"
  android:layout_y="300px"
  android:tag="23"/>


 <Button  
  android:id="@+id/myButton2"
  android:text="48"
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:layout_x="50px"
  android:layout_y="300px"
  android:tag="48"/>

</AbsoluteLayout>

In der Tat möchte ich keine Schaltfläche mehr in der XML festlegen, sondern Informationen über die Fernbedienung abrufen und abhängig von diesen Informationen Schaltflächen hinzufügen.

Hier ist der Teil, den ich so in meinem @ Code benutonCreateMethod, um diese Schaltflächen hinzuzufügen:

  for (MyRemoteObject remoteObject: list)  {
   Button button = new Button(this);
   button.setOnClickListener (listener);
   button.setTag(remoteObject.id);
   button.setText(remoteObject.id);
   // button.setLayoutX(remoteObject.x) ????
   // button.setLayoutY(remoteObject.y) ????
   myLayout.addView(button);
  }

Antworten auf die Frage(10)

Ihre Antwort auf die Frage