Android TV的行添加和行中数据项添加

首先需要为行(Row)创建自定义的Presenter。

Kotlin 复制代码
    private class GridItemPresenter : Presenter(){
        override fun onCreateViewHolder(parent: ViewGroup?): ViewHolder {
            val view = TextView(parent.context) // 此处以一个简单的TextView为示例,可根据需求自定义复杂的数据结构
            view.apply {
                layoutParams = ViewGroup.LayoutParams(GRID_ITEM_WIDTH, GRID_ITEM_HEIGHT) // 为单个卡片设定宽高
                isFocusable = true
                isFocusableInTouchMode = true
                setBackgroundColor(ContextCompat.getColor(context, R.color.default_background)) // 参考值#3d3d3d
                setTextColor(Color.WHITE)
                gravity = Gravity.CENTER
            }
            return Presenter.ViewHolder(view)
        }
        
        // 绑定数据,为每个view赋值
        override fun onBindViewHolder(viewHolder: ViewHolder?, item: Any?) {
            (viewHolder?.view as TextView).text = item as String
        }

        override fun onUnbindViewHolder(viewHolder: ViewHolder?) {}

    }

Presenter的作用是将View添加到Row中,类似RecyclerView的Adater。

之后使用我们自定义的Presenter,用于手动添加单个view到Row中。

Kotlin 复制代码
        // 手动添加Row
        val gridHead = HeaderItem(TabList.size.toLong(), "可手动添加项")
        // 手动添加View到Row中
        val mGridPresenter = GridItemPresenter()
        val girdRowAdapter = ArrayObjectAdapter(mGridPresenter)
        girdRowAdapter.apply { 
            add("Grid View")
            add("Error Page")
            add("Settings")
        }
        // 将我们新增的Row添加到页面的adapter
        rowsAdapter.add(ListRow(gridHead, girdRowAdapter))
相关推荐
simplepeng22 分钟前
Room 3.0 KMP Alpha-01
android·kotlin·android jetpack
Lei活在当下36 分钟前
Windows 下 Codex 高效工作流最佳实践
android·openai·ai编程
fatiaozhang952737 分钟前
基于slimBOXtv 9.19.0 v4(通刷晶晨S905L3A/L3AB芯片)ATV-安卓9-完美版线刷固件包
android·电视盒子·刷机固件·机顶盒刷机·晶晨s905l3ab·晶晨s905l3a
私房菜2 小时前
Selinux 及在Android 的使用详解
android·selinux·sepolicy
一只特立独行的Yang2 小时前
Android中的系统级共享库
android
两个人的幸福online3 小时前
php开发者 需要 协程吗
android·开发语言·php
修炼者4 小时前
WindowManager(WMS)构建全局悬浮窗
android
xiaoshiquan12064 小时前
Android Studio里,SDK Manager显示不全问题
android·ide·android studio
Lstone73645 小时前
Bitmap深入分析(一)
android
一起搞IT吧6 小时前
Android功耗系列专题理论之十四:Sensor功耗问题分析方法
android·c++·智能手机·性能优化