如何在android中隐藏填充gridview

时间:2014-09-16 11:02:25

标签: android gridview android-gridview

当我将列数更改为2时,将创建额外的空间。为什么?

还有一个额外的空间:

enter image description here

这没关系:

enter image description here

我的网格视图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.ex28_grid_to_list.MainActivity" >

    <Button 
        android:id="@+id/btn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="click me"
        />

    <GridView
        android:id="@+id/gridView1"
        android:numColumns="auto_fit"
        android:gravity="center"
        android:columnWidth="50dp"
        android:background="#e2e2e2"
        android:clipToPadding="false"
        android:verticalSpacing="50dp"
        android:horizontalSpacing="10dp"
        android:listSelector="@null"
        android:stretchMode="columnWidth"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</LinearLayout>

我的项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="#774646" >

    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:src="@drawable/rrrr" />


</LinearLayout>

此按钮用于更改列数:

    Button btn = (Button)findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
        int i = 0 ;
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if (i == 0){
                gridView.setNumColumns(2);
                i = 1 ;
            }else{
                gridView.setNumColumns(1);
                i = 0 ;
            }

        }
    });

已更新:

我将网格视图更改为:

<GridView
    android:id="@+id/gridView1"
    android:numColumns="auto_fit"
    android:gravity="center"
    android:columnWidth="50dp"
    android:background="#e2e2e2"
    android:clipToPadding="false"
    android:verticalSpacing="50dp"
    android:horizontalSpacing="10dp"
    android:listSelector="@null"
    android:stretchMode="columnWidth"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" />

但它没有改变。

已解决:

scaleType设为fitXY

4 个答案:

答案 0 :(得分:2)

您需要将listSelector设置为null并删除填充

删除此

android:padding="2dp"

添加此

<GridView
    android:listSelector="@null" />

使你的项目fill_parent(Match_parent)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#774646" >

    <ImageView
        android:id="@+id/grid_item_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginRight="10dp"
        android:src="@drawable/rrrr" />


</LinearLayout>

答案 1 :(得分:2)

android:background="#774646"更改为android:background="@android:color/tranaparent"

答案 2 :(得分:1)

这是因为您已将imageview heightwidth设置为wrap_content。因此它将根据其原始尺寸进行调整,因此只需应用固定高度和宽度即可。并scaleTypefitXY

答案 3 :(得分:0)

更改GridView高度......

android:layout_height="fill_parent"

android:layout_height="wrap_content" 

试试这个.. 希望它能满足你的需求。