在android网格视图中,网格视图行之间有额外的空间。我没有在gridview中添加任何空间。
这是我的xml文件
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:horizontalSpacing="5px"
android:numColumns="3"
android:columnWidth="50dip"
android:verticalSpacing="0dip"
android:gravity="center"
/>
和将视图添加到gridview的imageview的另一个xml是
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/singlePhoto"
android:layout_gravity="top"
android:layout_width="145dip"
android:layout_height="145dip"
android:layout_marginTop="0dip"
android:layout_marginBottom="0dip"
>
</ImageView>
在Adapter类中,代码是
if(mView == null){
mView = mLayoutInflater.inflate(R.layout.newsgridthumbpic, null);
}
ImageView mImage = (ImageView)mView.findViewById(R.id.singlePhoto);
PhotoGridInfoSet mInfo = (PhotoGridInfoSet)details.get(position);
if(mImage != null){
mImage.setTag(mInfo.getPhotoThumbNailString());
mImage.setVerticalScrollBarEnabled(true);
mImage.setVerticalFadingEdgeEnabled(true);
}
}!
空间位于gridview的行之间。我没有在代码中的任何地方添加任何空格仍然有垂直间距。我不能理解为什么gridview行之间有空间。此空间未出现在hdpi设备/模拟器中。此问题出在mdpi和ldpi devices / emulator中。
答案 0 :(得分:38)
我得到了解决这个问题的方法。
要解决此问题,我需要在我的xml文件中添加1行
android:adjustViewBounds="true"
并在添加之后。现在没有出现空间
答案 1 :(得分:2)
将最后两行放在gridView
中<GridView
android:numColumns="2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/gridView"
android:horizontalSpacing="0dip"
android:verticalSpacing="0dip"/>
答案 2 :(得分:0)
将以下行放在你的getView()方法中......
mImage.setPadding(0, 0, 0, 0);
我希望这会对你有所帮助。
答案 3 :(得分:0)
看起来您的图片正在缩放以适应50dp的列宽,同时保持纵横比。这在垂直布局中引入了一堆未填充的空间。如果您希望列的宽度为50dp,解决这些间距问题的最简单方法是将图像视图调整为宽度为50dp,并调整与此成比例的图像视图高度。
答案 4 :(得分:0)
检查您的“newsgridthumbpic”布局是否包含额外的填充或任何背景图像,其高度与网格视图元素相同。
另外请仔细检查您提供的 column_width 为 50dip ,但“imageview的”宽度 145 dip 。
答案 5 :(得分:0)
将gridview中的android:verticalSpacing设置为负值。 将删除垂直空间。
(例如:android:verticalSpacing =&#34; -10dp&#34;)
测试一些数字以获得正确的值
答案 6 :(得分:0)
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/grid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:horizontalSpacing="5px"
android:numColumns="3"
android:columnWidth="50dip"
android:verticalSpacing="0dip"
android:gravity="center"/>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/singlePhoto"
android:layout_width="145dip"
android:layout_height="145dip"
android:scaleType="fitXY">
</ImageView>
答案 7 :(得分:0)
当使用 RecyclerView 时,我有另一种解决同一问题的方法。
只需传递 SpanCount 的数量,就像我在 GridLayoutManager(this,6)中给定的6并更改SpanCount来减小或增加RecyclerView。
检查此示例代码-
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 6);
rvSizes.setLayoutManager(gridLayoutManager);
SizeSelectorAdaptersizeChooserAdapter = new SizeSelectorAdapter(this, sizes);
rvSizes.setAdapter(sizeChooserAdapter);
希望这会很有用。 谢谢