Android RecyclerView GridLayoutManager之间的随机间距
我正在开发一个小应用程序来显示用户DCIM文件夹中的所有图像,到目前为止,除了一个小问题外,所有图像都可以正常工作。如下图所示,RecyclerView增加了行之间的间距。在谷歌搜索了大约一个小时却什么也没找到之后,我希望你们中的一个能帮上忙 以下是ViewAdapter的代码:Android RecyclerView GridLayoutManager之间的随机间距,android,android-recyclerview,Android,Android Recyclerview,我正在开发一个小应用程序来显示用户DCIM文件夹中的所有图像,到目前为止,除了一个小问题外,所有图像都可以正常工作。如下图所示,RecyclerView增加了行之间的间距。在谷歌搜索了大约一个小时却什么也没找到之后,我希望你们中的一个能帮上忙 以下是ViewAdapter的代码: class BackgroundsViewAdapter( var images: List<File>, private val context: Context ) : Recycler
class BackgroundsViewAdapter(
var images: List<File>,
private val context: Context
) : RecyclerView.Adapter<BackgroundsViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BackgroundsViewHolder {
val view = ImageView(parent.context)
view.bottom = 0
view.top = 0
return BackgroundsViewHolder(view)
}
override fun getItemCount(): Int {
return images.size
}
override fun onBindViewHolder(holder: BackgroundsViewHolder, position: Int) {
Picasso
.get()
.load(images[position])
.centerCrop()
.resize(300, 300)
.into(holder.imageView)
}
}
class BackgroundsViewAdapter(
var图像:列表,
私有val上下文:上下文
):RecyclerView.Adapter(){
override fun onCreateViewHolder(父级:ViewGroup,viewType:Int):BackgroundsViewHolder{
val view=ImageView(parent.context)
view.bottom=0
view.top=0
返回背景视图(视图)
}
重写getItemCount():Int{
返回图像大小
}
覆盖BindViewHolder(holder:BackgroundsViewHolder,position:Int){
毕加索
.get()
.加载(图像[位置])
.centerCrop()
.调整大小(300300)
.into(holder.imageView)
}
}
RecyclerView的定义如下:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
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"
tools:context=".MainActivity">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/backgrounds_view"
android:scrollbars="vertical">
</android.support.v7.widget.RecyclerView>
</android.support.design.widget.CoordinatorLayout>
viewManager = GridLayoutManager(this, 4)
viewAdapter = BackgroundsViewAdapter(ArrayList(), this)
recyclerView = findViewById<RecyclerView>(R.id.backgrounds_view).apply {
setHasFixedSize(true)
layoutManager = viewManager
}
我建议不要硬编码宽度和高度为300。计算设备大小并将其除以网格大小,在本例中为4。
将宽度和高度也设置为IamgeView。发布项目视图布局代码please@Sdghasemi它发布在第一个代码段中。我用代码初始化了它,它确实起作用了。你知道为什么它不能与硬编码的值一起工作吗?如果图像大小不正确,图像的裁剪量会超过它看起来应该是正方形的程度。在使用视图布局时,我建议在手机开发人员设置中启用布局边界,以便更好地了解每个视图占用的空间。