Kotlin-RecyclerView.LayoutManager问题

时间:2018-10-17 09:50:40

标签: android android-recyclerview kotlin

我正在学习Kotlin和Adroid Studio,最近我坚持使用RecyclerView

问题是由于LayoutManager上显示的错误,我无法前进。

我的小代码如下:

 package com.example.julian.recyclerviewapplication

import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        RecyclerView.LayoutManager=LinearLayoutManager(this)

    }
}

LayoutManager带有下划线,并告诉我:“

Classifier 'LayoutManager' does not have a companion object, and thus must be initalized here".

我不是高级程序员,而是新手,我一直在试图解决此问题,但此刻它超出了我的能力。

谢谢您的帮助。

5 个答案:

答案 0 :(得分:0)

val layoutManager = LinearLayoutManager(this)
<your recyclerview>.layoutManager = layoutManager

或更短:

<your recyclerview>.layoutManager = LinearLayoutManager(this)

答案 1 :(得分:0)

您可以执行以下操作:

my_recyclerview_id.layoutManager = LinearLayoutManager(this);

"my_recyclerview_id"是您的布局XML文件中的recyclerview ID。

答案 2 :(得分:0)

尝试一下 第一种方式

val layoutManager = LinearLayoutManager(applicationContext)
your_recyclerview_id!!.layoutManager = layoutManager
your_recyclerview_id!!.adapter = Your_adapter(applicationContext)

第二种方式

 your_recyclerview_id!!.layoutManager=LinearLayoutManager(applicationContext)
 your_recyclerview_id!!.adapter = Your_adapter(applicationContext);
 your_recyclerview_id!!.adapter.notifyDataSetChanged()

与Kotlin交好运

答案 3 :(得分:0)

无需在kotlin中定义'findviewByID'... Android默认情况下可以理解所有资源和View元素。

您可以尝试...

仅在Kotlin中使用RecycleView时使用此代码

 rc_all_transaction.setLayoutManager(LinearLayoutManager(activity, 
   LinearLayoutManager.VERTICAL, true))

此处rc_all_transaction是Recycleview的ID,其余的是设置布局管理器

谢谢

答案 4 :(得分:-1)

Tt应该为RecyclerView.layoutManager = LinearLayoutManager(this)。 小写的l而不是大写的L