安卓GridView - 忽略线性布局的layout_height属性

4
根据这个问题的被接受答案GridView行高,如果你...

"将你的LinearLayout设置为某个特定高度,所有行都将具有该高度。"

在我的情况下,这似乎不起作用。我为每一行都有一个布局文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="wrap_content"
    android:layout_height="200dp"
    android:layout_gravity="center_horizontal">

    <ImageView 
        android:id="@+id/theimage"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal"
        android:background="#ffff0000" />

    <TextView 
        android:id="@+id/thename"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        style="?icontext" 
        android:background="#ff00ff00"/>

</LinearLayout>

以下是一个定义为 Gridview 的内容:

<GridView android:id="@+id/gridview" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:numColumns="auto_fit" 
        android:columnWidth="100dp"
        android:background="@color/background" 
        android:verticalSpacing="1dp"
        android:horizontalSpacing="5dp" />

这会忽略 'android:layout_height="200dp"',而是将行高设置为单元格内容的高度。

更糟糕的是,当我的TextView换行到第二行时,第二行被下一行的单元格遮挡了。

我错过了什么?


也许你应该查看这个问题及其答案:按钮边距的布局问题 - Dominik Mohr
啊,是的,那很有道理。也许你应该把这个发表为一个答案? - Chris Simpson
1个回答

9
以下问题已得到解决:Layout problem with button margin android:layout_*属性是LayoutParams,属于父视图。如果您不指定任何父级,则它们将被忽略。请注意保留HTML标记。

谢谢!我有一个仅包含TextView的片段,但是该视图的高度被忽略了。在片段中放置一个FrameLayout解决了这个问题。 - Jack O'Connor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接