当我将列数更改为2时,将创建额外的空间。为什么?
还有一个额外的空间:
这没关系:
我的网格视图:
<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
答案 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 height
和width
设置为wrap_content
。因此它将根据其原始尺寸进行调整,因此只需应用固定高度和宽度即可。并scaleType
到fitXY
。
答案 3 :(得分:0)
更改GridView高度......
这
android:layout_height="fill_parent"
到
android:layout_height="wrap_content"
试试这个.. 希望它能满足你的需求。