滚动不会进入网格视图

时间:2014-02-18 05:24:45

标签: android android-layout layout gridview

我正在android中开发一个应用程序。我的布局中有一个网格视图。我要从网络服务中获取要插入网格视图的文本..这是我要放入一个数组..数组大小大于18.但是当我使用适配器设置为gridview时,它只显示为屏幕上的栏。当数据很大时,滚动将启用ryt?..但它不会来。

这是我的xml布局

    <?xml version="1.0" encoding="utf-8"?>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageButton
    android:id="@+id/cancelbutton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:background="@android:color/transparent"
    android:onClick="onButtonClick"
    android:src="@drawable/cancel"/>

<Button 
    android:id="@+id/page4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page4"
    android:textSize="20sp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentRight="true"
    android:onClick="page4ButtonClick" />
<Button 
    android:id="@+id/page3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page3"
    android:textSize="20sp"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/page4"
    android:onClick="page3ButtonClick" />
<Button 
    android:id="@+id/page2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page2"
    android:textSize="20sp"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/page3" 
    android:onClick="page2ButtonClick"/>
<Button 
    android:id="@+id/page1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page1"
    android:textSize="20sp"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/page2"
    android:onClick="page1ButtonClick" />

<TextView
    android:id="@+id/qr_code_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:text="@string/qr_code_label" />

<Button
    android:id="@+id/imageButton"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:onClick="onImageButtonClick"
    android:text="@string/image" />

<Button
    android:id="@+id/qrButton"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/imageButton"
    android:onClick="onQRButtonClick"
    android:text="@string/qr" />
<GridView 
    android:id="@+id/gridView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"

    android:columnWidth="80dp"
    android:gravity="center_horizontal"
    android:layout_centerInParent ="true"
    android:layout_marginTop="150dp"
    android:verticalSpacing="0dp"
    android:horizontalSpacing="0dp"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:background="@color/peach"
    android:visibility="invisible"
    >
</GridView>



    </RelativeLayout>

这就是我调用Web服务和插入数据的功能

    private ArrayList<String> callService()
{
    ArrayList<String> devices;
    devices=new ArrayList<String>();
    try
    {
        ODataConsumer con=ODataJerseyConsumer.create("url of web service");
        List<OEntity> listEntities = con.getEntities("Devices").execute().toList();
        if (listEntities.size() > 0)
        {

           for (OEntity entity : listEntities)
           {

               devices.add(entity.getProperty("Name").getValue().toString());


           }            
         }

        String[] devices_list= new String[devices.size()];
        devices_list = devices.toArray(devices_list);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, devices_list);

        mGrid.setAdapter(adapter);
    }
    catch(Exception e)
    {

    }

    return devices;
 }      

在另一个功能中,我将网格视图的可见性设置为可见。这是在UI线程中完成的。网格视图正在出现,但没有任何数据,它只是一个小小的栏。

请帮助我,因为我是android的新手..

1 个答案:

答案 0 :(得分:2)

android:layout_widthandroid:layout_height更改为fill_parent。试试这样。

<GridView
    android:id="@+id/gridView1"
    android:numColumns="3"
    android:gravity="center"
    android:columnWidth="50dp"
    android:stretchMode="columnWidth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

</GridView>

告诉我它是否不起作用;)