我遇到此问题,其中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