问题描述
||
我的布局文件中有一个奇怪的“错误”。我是Android的新手,所以也许我错过了一些东西。我将示例简化到最低限度,以简化您对问题的理解:
我有一个带有listadapter的简单列表,该列表应该显示一行文本并在其旁边显示一个图标。如果文字高于图标,则图标应垂直居中。
如果我省略属性“ center”,该示例将起作用(列表项具有正确的高度),但是一旦包含该属性,我将得到一个错误。
关于如何解决此问题的任何想法? (顺便说一句,我需要用tableLayout来拉伸列,不确定是否有其他方法可以实现)
该行的XML源如下所示:
<TableLayout
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:layout_width=\"fill_parent\"
android:layout_height=\"wrap_content\"
android:stretchColumns=\"1\">
<TableRow>
<TextView
android:height=\"30dp\"
android:width=\"30dp\"
android:background=\"@color/blue\"
android:layout_gravity=\"center_vertical\"
/>
<TextView
android:layout_height=\"wrap_content\"
android:text=\"TextView\"
android:textSize=\"22dp\"
android:layout_width=\"120dp\"
android:layout_gravity=\"left\"
android:background=\"@color/yellow\"
android:id=\"@+id/simple_list_row_text1\"/>
</TableRow>
所需的结果(可在更高版本的android上正常运行,没有任何问题)是:
以及Android 1.6上的图片
解决方法
给整个TableRow一个center_vertical重力。当然,将固定的宽度/高度从TextView移到TableRow,然后将TextView留给wrap_height
,解决方法是:
<LinearLayout
xmlns:android=\"http://schemas.android.com/apk/res/android\"
android:orientation=\"horizontal\" android:layout_width=\"fill_parent\"
android:layout_height=\"wrap_content\">
<LinearLayout android:layout_width=\"wrap_content\"
android:layout_height=\"fill_parent\"
android:gravity=\"center\">
<TextView
android:layout_height=\"30dp\"
android:layout_width=\"30dp\"
android:background=\"@color/blue\"
/>
</LinearLayout>
<TextView
android:layout_weight=\"1\"
android:layout_height=\"wrap_content\"
android:text=\"TextView\"
android:textSize=\"22dp\"
android:layout_width=\"120dp\"
android:layout_gravity=\"left\"
android:background=\"@color/yellow\"
android:id=\"@+id/simple_list_row_text1\"/>