GridView条目从下到上添加

时间:2013-12-15 09:00:36

标签: java android eclipse gridview adt

我想从顶部开始向我的GridView添加条目,而是在左下角注册第一个条目。我在我的项目中有另一段代码,它将条目添加到GridView,代码是相同的,并按照我想要的方式工作。我确信这是一个简单的解决方案,但我似乎无法弄清问题所在。

ScreenShot

这是我在图片中的表单的布局代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
<LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/ll1"
    android:layout_above="@+id/ll2"
     >

    <GridView
        android:id="@+id/gvObjects"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:numColumns="3"
        android:horizontalSpacing="4dip"
        android:gravity="center"
        android:verticalSpacing="4dip"
        android:padding="4dip"
        android:stretchMode="columnWidth" >

    </GridView>
</LinearLayout>

<LinearLayout
    android:id="@+id/ll2"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignTop="@+id/btnDownloadObjects"
    android:orientation="vertical" >

    </LinearLayout>

<Button
    android:id="@+id/btnDownloadObjects"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:text="Download Objects"
    android:textSize="25sp" />

</RelativeLayout>

下一段代码是我的ImageView,它在GridView中添加为条目

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/ivObject"
    android:layout_width="fill_parent"
    android:layout_height="100dip"
    android:adjustViewBounds="true"
    android:contentDescription="@string/descr_image"
    android:scaleType="centerInside" />

以下方法将ImageView注册为GridView的适配器

private void populateGridView(){
        GridView gv = (GridView) findViewById(R.id.gvObjects);
        gv.setAdapter(new ImageAdapter());
        gv.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            }
        });
    }

最后,这是我的ImageAdapter类

public class ImageAdapter extends BaseAdapter{
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            final ImageView imageView;
            if (convertView == null) {
                imageView = (ImageView) getLayoutInflater().inflate(R.layout.picture_list_object, parent, false);
            } else {
                imageView = (ImageView) convertView;
            }
            File picFile = new File(Global.hairFolder.get(position));
            Uri picUri = Uri.fromFile(picFile);
            System.out.println(picUri.toString());
            imageLoader.displayImage(picUri.toString(), imageView, options);
            return imageView;

        }

        @Override
        public int getCount() {
            // TODO Auto-generated method stub
            return Global.hairFolder.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO Auto-generated method stub
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO Auto-generated method stub
            return position;
        }
    }

}

3 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,那么它就是LinearLayout的{​​{1}}父母:

GridView

<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/ll1" android:layout_above="@+id/ll2" > + wrap_content使layout_above不会在底部占用整个可用的垂直空间和布局。

您可以完全删除LinearLayout,然后将ll1放在父GridView中。如果您未指定任何特殊的RelativeLayout定位属性,则会将其放置在左上角。

答案 1 :(得分:1)

这非常简单。底部有一个Button。然后你在它上面有一个LinearLayout,在LinearLayout之上你有另一个GridView in的LinearLayout。你应该简单地移动你的布局位置...所以将gridview对齐顶部并将其移出无用的LinearLayout ...

答案 2 :(得分:1)

使用我的gridview,我做了android:layout_alignParentTop="true"并且它有效!