我遇到此問題,其中TableLayout
的Button
s正在重新部署所有Button
對象,只要我撥打Button.setText(String)
即可。我沒有給出任何跡象表明View
應該被移動......而我真的不希望它。如果有人知道如何防止這些Views
移動(如果可能,沒有很多麻煩),請讓我知道。android:調用Button.setText()導致Button不受歡迎的重定位
我使用一些非傳統的方法來獲取屏幕設置。下面的代碼:
static_grid_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:stretchColumns="*"
android:gravity="center">
<TableRow android:layout_height="fill_parent"
android:layout_width="fill_parent">
<Button android:id="@+id/btn1"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn2"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn3"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn4"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn5"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn6"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn7"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn8"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn9"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn10"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn11"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn12"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn13"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn14"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn15"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn16"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn17"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn18"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
<TableRow>
<Button android:id="@+id/btn19"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn20"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
<Button android:id="@+id/btn21"
android:layout_width="100dip"
android:layout_height="80dip"
android:gravity="center"
android:ellipsize="marquee"/>
</TableRow>
</TableLayout>
MainActivity.java:特別令人感興趣的部分將在這裏:
query = "SELECT * FROM "+DbSchema.ProductSchema.TABLE_NAME+
" ORDER BY "+DbSchema.ProductSchema.COLUMN_PRIORITY+" ASC";
updateList(listQuery(query));
fillPage(mPage);
setContentView(mPage);
朝onResume()
重寫代碼的底部。這是圖像中不需要的行爲。 Button
只有在我調用setText()時纔會獲得延遲y偏移。如果我調用setText(「」)[空字符串]按鈕的位置不會改變。是什麼賦予了?
更新:y偏移似乎與按鈕上的文本行數成正比。文字越多,它越向南移動。 – moonlightcheese 2011-05-06 17:29:54