Android 回收视图显示空的白色屏幕?

Android 回收视图显示空的白色屏幕?,android,kotlin,android-recyclerview,Android,Kotlin,Android Recyclerview,我正在使用kotlin开发新闻应用程序,但它显示的是空的白色屏幕,logcat上没有错误或异常 在我的SportNewsAdapter.kt下面 class SportNewsAdapter(val-context:context):RecyclerView.Adapter(){ var articleList:List=listOf() 重写CreateViewHolder(父级:ViewGroup,viewType:Int):MyViewHolder{ val view=LayoutInfl

我正在使用kotlin开发新闻应用程序,但它显示的是空的白色屏幕,logcat上没有错误或异常

在我的SportNewsAdapter.kt下面

class SportNewsAdapter(val-context:context):RecyclerView.Adapter(){
var articleList:List=listOf()
重写CreateViewHolder(父级:ViewGroup,viewType:Int):MyViewHolder{
val view=LayoutInflater.from(parent.context).充气(R.layout.news_列表,parent,false)
返回MyViewHolder(视图)
}
重写getItemCount():Int{
返回articleList.size
}
覆盖onBindViewHolder(holder:MyViewHolder,位置:Int){
holder.tvMovieName.text=articleList.get(position).title
Glide.with(context).load(articleList.get(position.urlToImage)
.apply(请求选项().centerCrop())
.插入(支架.图像)
}
娱乐集电影列表(电影列表:列表){
this.articleList=articleList;
notifyDataSetChanged()
}
类MyViewHolder(itemView:View?):RecyclerView.ViewHolder(itemView!!){
val tvMovieName:TextView=itemView!!.findViewById(R.id.title)
val image:ImageView=itemView!!.findviewbyd(R.id.image)
}
}
下面是news_item.xml


低于MainActivity.kt

class MainActivity:AppCompatActivity(){
lateinit变量recyclerView:recyclerView
lateinit var sportNewsAdapter:sportNewsAdapter
重写创建时的乐趣(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
recyclerView=findViewById(R.id.recyclerView)
sportNewsAdapter=sportNewsAdapter(此)
recyclerView.layoutManager=LinearLayoutManager(此)
recyclerView.adapter=sportNewsAdapter
val apiInterface=SportNewsInterface.create().getNews()
排队(对象:回调{
覆盖fun onResponse(调用:调用?,响应:响应?){
if(响应?.body()!=null)
sportNewsAdapter.setMovieListItems(response.body()!!)
}
覆盖失效时的乐趣(调用:调用?、t:可丢弃?){
}
})
}
}
下面是activity_main.xml


下面是SportNewsInterface.kt

界面SportNewsInterface{

@GET("v2/top-headlines?country=us&apiKey=da331087e3f3462bb534b3b0917cbee9")
fun getNews() : Call <List<Article>>

companion object {

    var BASE_URL = "https://newsapi.org/"

    fun create() : SportNewsInterface {

        val retrofit = Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .baseUrl(BASE_URL)
            .build()
        return retrofit.create(SportNewsInterface::class.java)

    }
} }
@GET(“v2/头条新闻?国家=us&apiKey=DA331087E3F3462BB534B034B0917CBEE9”)
fun getNews():调用
伴星{
var BASE_URL=”https://newsapi.org/"
趣味创建():SportNewsInterface{
val reformation=reformation.Builder()
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(基本URL)
.build()
return reformation.create(SportNewsInterface::class.java)
}
} }
下面是SportNewsResponse.kt,其中实施了改装

data class SportNewsResponse(
    val articles: List<Article>,
    val status: String,
    val totalResults: Int
)
数据类SportNewsResponse(
val文章:列表,
val状态:字符串,
val totalResults:Int
)

更改回收器视图高度以包装内容并再次运行

检查您的
新闻项目.xml
已检查更改了静止状态same@EdgarShvedsky检查getItemCount中的articleList.size是否返回正确的大小。@Edgar Shvedskiy只需打印,看看实际返回的值是什么。如何在那里打印
Log.v(“文章大小”),:“+articleList.size)将其添加到getItemCount()中,并查看日志…@Edgar ShvedskiyyyodGorbek.komilov.musobaqayangiliklari D/onFailure:应为BEGIN_数组,但在第1行第2列路径处为BEGIN_对象$
class MainActivity : AppCompatActivity() {

    lateinit var recyclerView: RecyclerView
    lateinit var sportNewsAdapter: SportNewsAdapter


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        recyclerView = findViewById(R.id.recyclerView)
        sportNewsAdapter = SportNewsAdapter(this)
        recyclerView.layoutManager = LinearLayoutManager(this)
        recyclerView.adapter = sportNewsAdapter


        val apiInterface = SportNewsInterface.create().getNews()


        apiInterface.enqueue( object : Callback<List<Article>> {
            override fun onResponse(call: Call<List<Article>>?, response: Response<List<Article>>?) {

                if(response?.body() != null)
                    sportNewsAdapter.setMovieListItems(response.body()!!)
            }

            override fun onFailure(call: Call<List<Article>>?, t: Throwable?) {

            }
        })
    }
    }
<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
@GET("v2/top-headlines?country=us&apiKey=da331087e3f3462bb534b3b0917cbee9")
fun getNews() : Call <List<Article>>

companion object {

    var BASE_URL = "https://newsapi.org/"

    fun create() : SportNewsInterface {

        val retrofit = Retrofit.Builder()
            .addConverterFactory(GsonConverterFactory.create())
            .baseUrl(BASE_URL)
            .build()
        return retrofit.create(SportNewsInterface::class.java)

    }
} }
data class SportNewsResponse(
    val articles: List<Article>,
    val status: String,
    val totalResults: Int
)