我想从顶部开始向我的GridView添加条目,而是在左下角注册第一个条目。我在我的项目中有另一段代码,它将条目添加到GridView,代码是相同的,并按照我想要的方式工作。我确信这是一个简单的解决方案,但我似乎无法弄清问题所在。
这是我在图片中的表单的布局代码
<?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;
}
}
}
答案 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"
并且它有效!