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))
相关推荐
程序员陆业聪16 小时前
技术选型决策树:什么团队、什么项目该选什么框架 | 跨平台框架深度对决(4)
android
星辰徐哥18 小时前
Rust异步测试与调试的实践指南
android·java·rust
星河耀银海18 小时前
C++ 运算符重载:自定义类型的运算扩展
android·java·c++
阿巴斯甜18 小时前
Activity 之间大量数据传递有哪些方案?
android
阿巴斯甜18 小时前
必看1
android
帅次20 小时前
副作用 API:LaunchedEffect、DisposableEffect、SideEffect
android·compose·disposable·sideeffect·launched·ondispose
流年如夢21 小时前
单链表的应用 --> 简单通讯录的实现
android·数据结构·链表
用户86022504674721 天前
Jetpack ViewModel 入门与实践
android
随遇丿而安1 天前
第3周:按钮这件小事,真正麻烦的是“点完以后”
android
峥嵘life1 天前
五一南昌第三天游玩记录:梅景寻芳,母校忆旧,摩天轮揽夜
android