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))
相关推荐
Android-Flutter27 分钟前
Compose CompositionLocal 详解
android·compose
三少爷的鞋1 小时前
Kotlin 协程闯关:看代码,猜结果
android
2501_932750263 小时前
Android 跑马灯:从一行 XML 到自定义控件
android
BoomHe15 小时前
Android Framework 文件应用移植到 AndroidStudio
android
传奇开心果编程17 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
>Andre<17 小时前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
事圆则缓18 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
mmsx18 小时前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
Godikov19 小时前
Android 工业终端保活实战:前台服务 + 开机自启 + 更新自启的三重保障
android
字节暗面20 小时前
SO加固强度怎么量化?腾讯ACE与FairGuard静态分析实测
android·逆向