Если вы используете AbsoluteLayout (я знаю, что он устарел, но это был единственный способ решить мой problem), вы можете дать childViews тег android:layout_x
и android:layout_y
, чтобы установить их абсолютное позиции в пределах AbsoluteLayout
.Android: Измените абсолютное положение представления программно
Однако я не хочу устанавливать эту информацию в 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);
}
Спасибо, но как, как я могу создать LayoutParams, учитывая, что mLayout имеет тип AbsoluteLayout ? AbsoluteLayout имеет только метод absolutLayout.generatelayoutParams (AttributeSet). Я не знаю, как создать атрибутSet в первую очередь, чтобы я мог передать этот набор в generateLayoutParams() - Method –
У меня такая же проблема с RelativeLayout, а не с Absolute – Amplify91