- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个使用 recyclerview 的帖子列表。列表很棒,但是当我尝试在 recyclerview 中添加图像时出现问题。我正在使用 Glide 添加图像。我已经在 Navigation Drawer 中使用 glide 成功添加了图像,但是当我在 Recyclerview 中尝试时,它只显示我获取的默认图像。
这是我的 Kotlin ,
class InformationListActivity : MainActivity() {
private val glide: RequestManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_information_list)
val toolbar = findViewById<View>(R.id.toolbar) as Toolbar
setSupportActionBar(toolbar)
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
supportActionBar!!.setDisplayShowHomeEnabled(true)
val user = FirebaseAuth.getInstance().currentUser
val uName = user?.displayName
val uEmail = user?.email
val uPhotoUrl = user?.photoUrl
user?.uid
val navigationView = findViewById<View>(R.id.nav_view) as NavigationView
navigationView.setNavigationItemSelectedListener(this)
val headerView = navigationView.getHeaderView(0)
val navName = headerView.findViewById<TextView>(R.id.navName)
navName.text = uName
val navEmail = headerView.findViewById<TextView>(R.id.navEmail)
navEmail.text = uEmail
val navImage = headerView.findViewById<ImageView>(R.id.navImage)
Glide.with(this).load(uPhotoUrl).into(navImage)
window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
val signOut = findViewById<View>(R.id.btnSignOut) as LinearLayout
signOut.setOnClickListener {
FirebaseAuth.getInstance().signOut()
val goToLogin = Intent(this@InformationListActivity, LoginActivity::class.java)
startActivity(goToLogin)
}
val recyclerView = findViewById<View>(R.id.recycler_view) as RecyclerView
recyclerView.setHasFixedSize(true)
recyclerView.layoutManager = LinearLayoutManager(this)
val myref = FirebaseDatabase.getInstance().reference.child("/posts")
val recyclerAdapter = object : FirebaseRecyclerAdapter<Post, InformationListActivity.PostViewHolder>(
Post::class.java,
R.layout.information_model,
InformationListActivity.PostViewHolder::class.java,
myref
) {
override fun populateViewHolder(viewHolder: InformationListActivity.PostViewHolder, model: Post, position: Int) {
val data_empty = findViewById<View>(R.id.data_empty) as TextView
data_empty.visibility = View.GONE
viewHolder.run {
glide?.let { setmPostImageUrl(it,model.getmPostImageUrl()) }
setmPostTitle(model.getmPostTitle())
setmPostDescription(model.getmPostDescription())
viewHolder.setItemClickListener(object : ItemClickListener {
override fun onItemClick(pos: Int) {
//OPEN DETAIL ACTIVITY
openInformationDetail(model.getmPostImageUrl(), model.getmPostTitle(), model.getmPostDescription())
}
})
}
}
}
recyclerView.adapter = recyclerAdapter
}
private fun openInformationDetail(vararg details: String) {
val i = Intent(this, InformationDetailActivity::class.java)
i.putExtra("POSTIMAGEURL_KEY", details[0])
i.putExtra("POSTTITLE_KEY", details[1])
i.putExtra("POSTDESCRIPTION_KEY", details[2])
startActivity(i)
}
class PostViewHolder(mView: View) : RecyclerView.ViewHolder(mView), View.OnClickListener {
private var modelImgPost: ImageView = mView.findViewById(R.id.imgPost)
private var modelPostTitle: TextView = mView.findViewById(R.id.modelPostTitle)
private var modelPostDescription: TextView = mView.findViewById(R.id.modelPostDescription)
private var btnMore: Button = mView.findViewById(R.id.btnMore)
private lateinit var itemClickListener: ItemClickListener
init {
btnMore.setOnClickListener(this)
}
fun setItemClickListener(itemClickListener: ItemClickListener) {
this.itemClickListener = itemClickListener
}
override fun onClick(view: View) {
this.itemClickListener.onItemClick(this.layoutPosition)
}
fun setmPostImageUrl(glide: RequestManager, mPostImageUrl: String) {
glide.load(Uri.parse(mPostImageUrl)).into(modelImgPost)
}
fun setmPostTitle(mPostTitle: String) {
modelPostTitle.text = mPostTitle
}
fun setmPostDescription(mPostDescription: String) {
modelPostDescription.text = mPostDescription
}
}
最佳答案
if (glide != null) {
setmPostImageUrl(glide, model.getmPostImageUrl())
}
Glide 是null 因为你永远不会分配/实例化它。
替换这一行:
private val glide: RequestManager? = null
与:
private var glide: RequestManager? = null
并在 onCreate()
中执行:
glide = Glide.with(this)
关于android - 使用 Glide 在 Recyclerview 中不显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46013255/
从 Gilde 3.7.0 迁移到 Glide 4.9.0。 如下定义我的 MyAppGlideModule。 @GlideModule public class MyAppGlideModule
我将 Glide JS 用于我使用 ACF 和 Gutenberg Blocks 构建的幻灯片。 但是下一个按钮有问题。 ">"无法正确呈现 - 它会破坏整个 DOM。 “data-glide-dir
我到处搜索,但因为 Glide 已经发布了 4.4 版。我再也找不到应用 RoundedCornersTransformation 的方法了。我正在使用 glide-transformations甚至
我想调整 gif 文件的大小并保存它。我尝试使用一些建议的方法,但这些方法会出错,后来我才知道 Glide v4 中不推荐使用某些方法 byte[] bytes = Glide.
我正在尝试使用 firebase 在 android studio 中开发一个消息应用程序。根本没有语法错误。但是当我使用实现 'com.github.bumptech.glide:glide:4.8
这是我的代码: d.setBounds(15, 8, d.getIntrinsicWidth(), d.getIntrinsicHeight()); ImageSpan span = new Imag
我很难从 firebase 存储中获取图像 URL,我从数据库中获取了照片 URL,但据我所知,Glide 无法从这样的链接获取图片:com.google.firebase .storage.Uplo
我使用 Glide我的应用程序中的库内部自定义适配器 View 。但我有错误: "You must not call setTag() on a view Glide is targeting" 我的
我试图添加编译 应用程式 bulid.gradle compile 'com.github.bumptech.glide:glide:3.7.0' 当我尝试运行该应用程序时,它给了我错误 NoCla
我尝试了所有可能的方法,但无法弄清楚如何在我的 json 更新时更新图像以滑动 我的 android 应用程序最初使用 glide 从 json 加载图像,之后它只从缓存加载图像。它不会加载在服务器上
首先我集成了 Room 数据库并将一些信息存储到 db,其中包含一些图像 URL,现在我需要在 ImageViews 中显示这些图像。 现在尝试使用 glide,添加依赖项和注释处理器, 实现'com
我的房车有问题。我正在将 mp3 的封面艺术加载到字节数组中,然后使用 glide 将字节数组加载到图像中 (vh.coverArt)。但是,当我使用 glide 而不是仅使用 .SetImageBa
简单的 Glide.with(context).load(url).into(image) 在将项目与 同步后无法正常工作 compile 'com.github.bumptech.glide:gli
我真的为 Rails 的所有新 JS 更改而苦苦挣扎。我正在尝试实现非常简单的 slider 脚本 Glide.js 这是我的 app/javascripts/packs/front.js 文件: /
Build.gradle(模块:App) apply plugin: 'com.android.application' android { compileSdkVersion 23
我正在创建一个应用程序,让用户通过按 ImageView 来更改他/她的图像,该图像将来自他/她的图库并将上传到我的 FirebaseStorage 中。用户的个人详细信息单独上传到 Firebase
我可以通过滑动将图像成功加载到 ImageView 中,并使用 .circularCrop() 方法对其进行裁剪。 Glide.with(this) .load("https://i.img
使用 glide 在 recyclerview imageview 项目上加载图像。受阻 Glide 听众我意识到图像资源已准备好,但图像未显示在 imageview 中。当我在 Glide 监听器
我在我的应用程序中使用 glide 加载图像。它在我的情况下工作正常,比如 if(image_enabled==1){ Glide.with(getContext()).load(constant.S
是否可以使用 缓存图像? Glide 未在 imageView 中显示?.如果是那怎么办? 现在我正在做这个代码: Glide .with(getApplicationContext()) .
我是一名优秀的程序员,十分优秀!