Если вы используете AbsoluteLayout (я знаю, что он устарел, но это был единственный способ решить мою проблему ), вы можете дать childViews теги android:layout_x
и android:layout_y
для установки абсолютная позиция в пределах AbsoluteLayout
.
Однако я не хочу устанавливать эту информацию в xml, потому что я знаю ее только во время выполнения. Итак, как я могу установить эти параметры во время выполнения программно? Я не вижу никакого метода в представлении, как view.setLayoutX(int x)
или что-то еще.
Вот мой XML, который отлично работает, когда я устанавливаю значения layout_x
и layout_y
:
<?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>
На самом деле, я больше не хочу устанавливать какие-либо кнопки в XML, а скорее извлекать некоторую информацию через пульт и добавлять кнопки в зависимости от этой информации.
Вот часть кода, который я использую в моем onCreateMethod
, чтобы добавить эти кнопки:
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);
}