创建一个简单的ListView级联
Create a simple ListView Cascades
我想创建一个简单的ListView级联(无论是在c++或QML)。ListView的数据很简单,只是我想传递给它的字符串(没有XML或SQL等);ListView也可以有section,例如
- Green
- Cucumber
- Peas
- Salad
- Red
- Tomato
- Red Radish
- Carrot
另外,我希望能够自定义列表视图和列表视图本身的项目的外观(例如,设置背景颜色,设置列表项目文本颜色等)。
任何教程或简单的示例应用程序,实现我上面写的将非常感激!!
谢谢。
最简单的方法,如果你打算只使用一个静态列表(我的意思是,你不想在运行时改变它)是从一个XML文件(例如:assets
文件夹中的model.xml
)加载它,像这样:
<model>
<header title="Green"/>
<item title="Cucumber"/>
<item title="Peas"/>
<item title="Salad"/>
<header title="Red"/>
<item title="Tomato"/>
<item title="Red Radish"/>
<item title="Carrot"/>
</model>
你的ListView只需要加载它:
ListView {
dataModel: XmlDataModel {
source: "model.xml"
}
}
现在,如果你想自定义外观,你只需要在listtitemcomponents中放入你想要的显示方式:
ListView {
dataModel: XmlDataModel {
source: "model.xml"
}
listItemComponents: [
ListItemComponent {
type: "header"
Container {
// your personal code
}
},
ListItemComponent {
type: "item"
Container {
// your personal code
}
}
]
}
这些容器允许你定义你自己的布局。例如,假设您只想显示具有匹配背景色的标题,您可以这样做:
ListView {
dataModel: XmlDataModel {
source: "model.xml"
}
listItemComponents: [
ListItemComponent {
type: "header"
Container {
background: {
if (ListItemData.title == "Green") {
return Color.Green
} else {
return Color.Red
}
}
Header {
title: ListItemData.title
}
}
},
ListItemComponent {
type: "item"
Container {
preferredHeight: 100
Label {
text: ListItemData.title
verticalAlignment: VerticalAlignment.Center
}
Divider {}
}
}
]
}
如果我理解正确,你想在android中像ExpandableListView
一样,你可以使用bb::cascades::DataModel
实现它的例子在这里
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- 如何在没有函数的情况下编写此代码并使C++更简单?
- 有没有办法简单地从 GPU 调用多个 cpp 输出文件?
- 在简单示例中,Python3 + ctypes 回调会导致内存泄漏
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 如何使用 samtools C API 构建一个简单的主.cpp文件
- 创建一个简单的ListView级联