Android RecyclerView:未连接适配器;跳过kotlin中的布局

Android RecyclerView:未连接适配器;跳过kotlin中的布局,android,kotlin,Android,Kotlin,recyclerView不显示任何内容 我检查了适配器及其项(notifyDatasetChanged已调用) 和调用线程,它应该是工作 我使用的是android.support.v7.widget.RecyclerView 视图类: class HomeView(private val context: Context, swipeRefreshEnabled: Boolean = true) : HomeViewContract { private var mRootVie

recyclerView不显示任何内容

我检查了适配器及其项(notifyDatasetChanged已调用) 和调用线程,它应该是工作

我使用的是
android.support.v7.widget.RecyclerView

视图类

    class HomeView(private val context: Context, swipeRefreshEnabled: Boolean = true) : HomeViewContract {

    private var mRootView: View = context.inflate(R.layout.fragment_home)
    private var mAdapter: HomeAdapter
    private var list: RecyclerView

    init {
        Log.d("HomeView","init called from ${Thread.currentThread().name}")
        mAdapter = HomeAdapter()
        this.list = mRootView.findViewById(R.id.home_recycler_view) as RecyclerView
        val linearLayoutManager = LinearLayoutManager(context)
        linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
        list.apply{
            adapter = mAdapter
            layoutManager = linearLayoutManager
        }
      // ...
    }
}
class HomeFragment : Fragment() {
private lateinit var homeView: HomeView

override fun onCreateView(...) = container?.inflate(R.layout.fragment_home)
fun make(context: Context){
    this.homeView = HomeView(context)
}
val homeFragment = HomeFragment()
            homeFragment.make(this)
            loadFragment(homeFragment)
片段

    class HomeView(private val context: Context, swipeRefreshEnabled: Boolean = true) : HomeViewContract {

    private var mRootView: View = context.inflate(R.layout.fragment_home)
    private var mAdapter: HomeAdapter
    private var list: RecyclerView

    init {
        Log.d("HomeView","init called from ${Thread.currentThread().name}")
        mAdapter = HomeAdapter()
        this.list = mRootView.findViewById(R.id.home_recycler_view) as RecyclerView
        val linearLayoutManager = LinearLayoutManager(context)
        linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
        list.apply{
            adapter = mAdapter
            layoutManager = linearLayoutManager
        }
      // ...
    }
}
class HomeFragment : Fragment() {
private lateinit var homeView: HomeView

override fun onCreateView(...) = container?.inflate(R.layout.fragment_home)
fun make(context: Context){
    this.homeView = HomeView(context)
}
val homeFragment = HomeFragment()
            homeFragment.make(this)
            loadFragment(homeFragment)
活动

    class HomeView(private val context: Context, swipeRefreshEnabled: Boolean = true) : HomeViewContract {

    private var mRootView: View = context.inflate(R.layout.fragment_home)
    private var mAdapter: HomeAdapter
    private var list: RecyclerView

    init {
        Log.d("HomeView","init called from ${Thread.currentThread().name}")
        mAdapter = HomeAdapter()
        this.list = mRootView.findViewById(R.id.home_recycler_view) as RecyclerView
        val linearLayoutManager = LinearLayoutManager(context)
        linearLayoutManager.orientation = LinearLayoutManager.VERTICAL
        list.apply{
            adapter = mAdapter
            layoutManager = linearLayoutManager
        }
      // ...
    }
}
class HomeFragment : Fragment() {
private lateinit var homeView: HomeView

override fun onCreateView(...) = container?.inflate(R.layout.fragment_home)
fun make(context: Context){
    this.homeView = HomeView(context)
}
val homeFragment = HomeFragment()
            homeFragment.make(this)
            loadFragment(homeFragment)

框架将自动调用片段的
onCreateView
方法。此调用创建的布局将包含您的
RecyclerView
的一个实例,并且此布局实例将是布局过程的一部分

您在
HomeView
中所做的是扩展布局的另一个实例,并将适配器添加到第二个实例中的
RecyclerView

相反,您可以在
onViewCreated
中创建
HomeView
,如下所示:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    this.homeView = HomeView(context, view)
}
然后在此
视图
实例中找到
RecyclerView
(这是您的
onCreateView
方法所膨胀的一个,框架只是将其传递给您):


框架将自动调用片段的
onCreateView
方法。此调用创建的布局将包含您的
RecyclerView
的一个实例,并且此布局实例将是布局过程的一部分

您在
HomeView
中所做的是扩展布局的另一个实例,并将适配器添加到第二个实例中的
RecyclerView

相反,您可以在
onViewCreated
中创建
HomeView
,如下所示:

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    this.homeView = HomeView(context, view)
}
然后在此
视图
实例中找到
RecyclerView
(这是您的
onCreateView
方法所膨胀的一个,框架只是将其传递给您):


请发布HomeAdapter的代码。它从哪里获得数据?您是否尝试过在任何适配器方法(例如onCreateViewHolder()、getItemCount())中设置断点?请发布HomeAdapter的代码。它从哪里获得数据?您是否尝试过在任何适配器方法(例如onCreateViewHolder()、getItemCount())中设置断点?为什么不尝试重写onCreateView(…)=viewHome.getRootView()?:)为什么不尝试重写onCreateView(…)=viewHome.getRootView()?:)