如果您使用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)。我不知道如何創建一個attributeSet在第一個地方,以便我可以將該設置傳遞給generateLayoutParams() - 方法 – 2010-08-09 17:35:46
我有同樣的問題與RelativeLayout而不是絕對 – Amplify91 2011-03-25 20:04:10