2016-03-30 97 views
0

所有的GridView项目都没有显示,直到我给布局的高度。GridView项目没有在Android中完全显示

不同的xml中的相同设置工作正常。

我将如何让它显示所有项目而不给出高度。

它总是只显示两个项目。

请参考下面我做了什么:

<LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:id="@+id/gridOptionsView" 
       android:layout_marginBottom="10dp" 
       android:visibility="gone" 
       android:orientation="vertical" > 

       <GridView 
        android:id="@+id/OptionsGrid" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:columnWidth="125dp" 
        android:horizontalSpacing="5dp" 
        android:layout_marginBottom="5dp" 
        android:scrollbars="vertical" 
        android:verticalSpacing="5dp" 
        android:numColumns="2" 
        android:visibility="visible"> 
       </GridView> 

      </LinearLayout> 

我有不同的Linearlayouts在其中一个上面显示的XML。

我无法跟踪此问题。

谢谢!

+0

添加屏幕截图,以便每个人都能更好地理解您的问题。 –

+1

我不明白你想说什么,layout_height总是需要** xml布局中的元素......你的应用如何运行而不设置'layout_height'? –

+1

你面对的问题并不清楚,就像@ g2o所说的,layout_height肯定是必需的,请加好详细说明问题 –

回答

2

试试这个

你的源代码的LinearLayout是主容器布局,这种布局改变这种说法

机器人:layout_height = “WRAP_CONTENT”机器人:layout_height = “match_parent”

所以,但是当你设置你的gridview高度为match_parent。父布局Layout_height是wrap_content。所以这个原因你的gridview将不会全部显示。在下面的代码中完成更改

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/gridOptionsView" 
    android:layout_marginBottom="10dp" 
    android:visibility="gone" 
    android:orientation="vertical" > 

    <GridView 
     android:id="@+id/OptionsGrid" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnWidth="125dp" 
     android:horizontalSpacing="5dp" 
     android:layout_marginBottom="5dp" 
     android:scrollbars="vertical" 
     android:verticalSpacing="5dp" 
     android:numColumns="2" 
     android:visibility="visible"> 
    </GridView> 
</LinearLayout> 
0

android:layout_height="match_parent"

更改GridView高度

android:layout_height="wrap_content"

1

LinearLayout是父布局。

<LinearLayout> 
    android:layout_height="wrap_content" 
</LinearLayout> 

当您将GridView高度设置为match_parent

此处的父级布局是LinearLayout及其layout_heightwrap_content。因此您的GridView将不会以全高显示。

取而代之。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/gridOptionsView" 
    android:layout_marginBottom="10dp" 
    android:visibility="gone" 
    android:orientation="vertical" > 

    <GridView 
     android:id="@+id/OptionsGrid" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:columnWidth="125dp" 
     android:horizontalSpacing="5dp" 
     android:layout_marginBottom="5dp" 
     android:scrollbars="vertical" 
     android:verticalSpacing="5dp" 
     android:numColumns="2" 
     android:visibility="visible"> 
    </GridView> 
</LinearLayout>