Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Kotlin:在片段中创建RecyclerView_Android_Android Fragments_Kotlin_Android Recyclerview_Android Tablayout - Fatal编程技术网

Android Kotlin:在片段中创建RecyclerView

Android Kotlin:在片段中创建RecyclerView,android,android-fragments,kotlin,android-recyclerview,android-tablayout,Android,Android Fragments,Kotlin,Android Recyclerview,Android Tablayout,我是Android开发的新手,我一直在创建一个片段中的RecyclerView 我创建了2个适配器(AdapterAll.kt用于Tablayout下的多个片段,MainAdapter.kt用于我要在其上创建recyclerview的片段),但无法调用MainAdapter.kt。 MainActivity.kt调用AdapterAll.kt,但不调用MainAdapter.kt。 我相信这就是为什么我可以用片段创建TableLayout,但不能在片段上创建Recyclerview 多谢各位 代

我是Android开发的新手,我一直在创建一个片段中的RecyclerView

我创建了2个适配器(AdapterAll.kt用于Tablayout下的多个片段,MainAdapter.kt用于我要在其上创建recyclerview的片段),但无法调用MainAdapter.kt。 MainActivity.kt调用AdapterAll.kt,但不调用MainAdapter.kt。 我相信这就是为什么我可以用片段创建TableLayout,但不能在片段上创建Recyclerview

多谢各位

代码如下:

MainActivity.kt

import controller.AdapterAll
import controller.MainAdapter
import kotlinx.android.synthetic.main.activity_main.*

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

        viewPager.adapter = AdapterAll(supportFragmentManager)
        tabLayoutId.setupWithViewPager(viewPager)

        tabLayoutId.setTabTextColors(Color.GRAY, Color.parseColor("white"))

        recyclerView_main.layoutManager = LinearLayoutManager(this)
        recyclerView_main.adapter = MainAdapter()
    }
}
适配器L.kt

class AdapterAll(fragmentManager: FragmentManager): 
    FragmentPagerAdapter(fragmentManager) {
    override fun getItem(position: Int): Fragment {
        when (position) {
            0 -> return Function1()
            1 -> return Function2()
            2 -> return Function3()
            3 -> return Function4()
            4 -> return Function5()
            5 -> return Function6()
            6 -> return Function7()
        }
        return Function1()
    }

    override fun getCount(): Int {
        return 7
    }

    override fun getPageTitle(position: Int): CharSequence? {
        when (position) {
            0 -> return "Function 1"
            1 -> return "Function 2"
            2 -> return "Function 3"
            3 -> return "Function 4"
            4 -> return "Function 5"
            5 -> return "Function 6"
            6 -> return "Function 7"
        }
        return null
    }
}
MainAdapter.kt

class MainAdapter: RecyclerView.Adapter<CustomViewHolder>() {


    override fun getItemCount(): Int {
        return 10
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CustomViewHolder {
        val layoutInflater = LayoutInflater.from(parent.context)
        val cellForRow = layoutInflater.inflate(R.layout.fragment_function1, parent, false)
        return CustomViewHolder(cellForRow)
    }

    override fun onBindViewHolder(holder: CustomViewHolder, position: Int) {
        holder.view.textView_video_title.text = "123"
    }

}

class CustomViewHolder(val view: View): RecyclerView.ViewHolder(view) {

}
class MainAdapter:RecyclerView.Adapter(){
重写getItemCount():Int{
返回10
}
重写CreateViewHolder(父级:ViewGroup,viewType:Int):CustomViewHolder{
val layoutInflater=layoutInflater.from(parent.context)
val cellForRow=layoutInflater.flate(R.layout.fragment_函数1,父函数,false)
返回CustomViewHolder(cellForRow)
}
覆盖BindViewHolder(holder:CustomViewHolder,位置:Int){
holder.view.textView\u video\u title.text=“123”
}
}
类CustomViewHolder(val视图:视图):RecyclerView.ViewHolder(视图){
}

您的适配器正常。如果我没说错的话,您希望在片段中创建一个recyclerView,但为什么要在活动中创建一个recyclerView呢。在片段中创建一个recyclerView,并在recyclerView中设置MainAdapter.kt

class FragmentOne : Fragment() {

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    val view = inflater.inflate(R.layout.fragment_blank, container, false)

    view.recyclerView.layoutManager = LinearLayoutManager(activity)
    view.recyclerView.adapter = MainAdapter()


    return view
}}

因此,所有的构建都很好,但您无法看到您的
回收视图
?我相信所有的构建都很好。没错,我看不到RecyclerView。此外,我没有收到任何错误消息,因此我认为这与不调用MainAdapter.kt.addthis layout
R.layout.fragment\u function1
有关,所以您的建议是在layout下创建一个xml文件?我已经有了fragment_function1,但仍然无法调用MainAdapter.kt。Aha做了一些调整,现在问题已经解决。非常感谢。