Kotlin - проблема с RecyclerView.LayoutManager - PullRequest
0 голосов
/ 17 октября 2018

Я изучаю 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".

Я не продвинутый программист, скорееновичок, и я пытался исправить это замечание, но в данный момент оно мне не под силу.

Спасибо за вашу помощь.

Ответы [ 4 ]

0 голосов
/ 17 октября 2018

Нет необходимости определять 'findviewByID' в kotlin ... Android понимает по умолчанию все ресурсы и элемент View.

вы можете попробовать это ...

Используйте этот код только тогда, когда выработают над RecycleView в kotlin

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

здесь rc_all_transaction является идентификатором Recycleview, а остальные настраивает Layout Manager

Спасибо

0 голосов
/ 17 октября 2018

Вы можете сделать следующее:

my_recyclerview_id.layoutManager = LinearLayoutManager(this);

Здесь "my_recyclerview_id" - это ваш recyclerview идентификатор из вашего XML-файла макета.

0 голосов
/ 17 октября 2018

Попробуйте это 1-й способ

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

2-й способ

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

Удачи с Kotlin

0 голосов
/ 17 октября 2018
val layoutManager = LinearLayoutManager(this)
<your recyclerview>.layoutManager = layoutManager

Или еще короче:

<your recyclerview>.layoutManager = LinearLayoutManager(this)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...