ListRow 组件用于显示一个列表行, 定义了一系列易于使用的元素属性, 使得可以快速开发出基于 ListView、ScrollView 的应用。
Prop | Type | Default | Note |
---|---|---|---|
TouchableOpacity props... | ListRow 组件继承 TouchableOpacity 组件的全部属性。 | ||
title | string number element |
标题, 可以是字符串、数字或 React Native 组件。 | |
detail | string number element |
详细内容, 可以是字符串、数字或 React Native 组件。 | |
titleStyle | 同Text.style | 标题样式, 当 title 类型为 element 时无效。 | |
detailStyle | 同Text.style | 详细内容样式, 当 detail 类型为 element 时无效。 | |
detailMultiLine | bool | 详细内容是否支持多行,默认为 titlePlace = 'top' 时为 true, 否则为 false。 | |
icon | 同Image.source element |
图标, 可以是 Image.source 或 React Native 组件, 如设置则显示在列表行左侧。 | |
accessory | string 同Image.source element |
'auto' | 指示图标, 可以是 字符串、Image.source 或 React Native 组件, 如设置则显示在列表行右侧。 - none: 无 - auto: 自动, 当设置了 onPress 属性时为'indicator', 否则为'none' - empty: 空, 不显示指示图标, 但占用'check'或'indicator'大小的位置 - check: 小勾图标, 一般用于表示该行已被选中 - indicator: 大于号图标, 一般用于表示点击此行打开新页面 显示效果参见Screenshots。 |
topSeparator | string element |
'none' | 上分隔线, 可以是字符串或 React Native 组件。 - none: 无 - full: 满行分隔线 - indent: 缩进分隔线 |
bottomSeparator | string element |
'indent' | 下分隔线, 可以是字符串或 React Native 组件。 - none: 无 - full: 满行分隔线 - indent: 缩进分隔线 |
titlePlace | string | 'left' | 标题位置。 - none: 不显示标题 - left: 标题显示在左侧 - top: 标题显示在上侧 显示效果参见Screenshots。 |
swipeActions | [element] | 向左滑动时显示的操作按钮列表, 建议使用 ListRow.SwipeActionButton 组件。 | |
activeOpacity | number | null | 继承自 TouchableOpacity 并修改默认值, 传入 onPress 时默认为 0.2, 否则为 1。 |
Event Name | Returns | Notes |
---|---|---|
TouchableOpacity events... | ListRow 组件继承 TouchableOpacity 组件的全部事件。 |
Prop | Type | Default | Note |
---|---|---|---|
SwipeActionButton | class | 滑动按钮组件。 |
Prop | Type | Default | Note |
---|---|---|---|
TouchableOpacity props... | SwipeActionButton 组件继承 TouchableOpacity 组件的全部属性。 | ||
type | string | 'default' | 显示样式类型。 - default: 默认- danger: 危险 |
title | string number element |
标题, 可以是字符串、数字或 React Native 组件。 | |
titleStyle | 同Text.style | 标题样式, 当 title 类型为 element 时无效。 |
Event Name | Returns | Notes |
---|---|---|
TouchableOpacity events... | SwipeActionButton 组件继承 TouchableOpacity 组件的全部事件。 |
简单用法
<ListRow title='Title' detail='Detail' />
自定义 title
<ListRow title='Custom title' titleStyle={{fontSize: 18, color: '#31708f'}} />
<ListRow title={<Label style={{fontSize: 18, color: '#31708f'}} text='Custom title' />} />
自定义 detail
<ListRow title='Custom detail' detail='This is detail' detailStyle={{fontSize: 15, color: '#31708f'}} />
<ListRow title='Custom detail' detail={
<View style={{backgroundColor: '#5bc0de', width: 60, height: 24, borderRadius: 4}} />
} />
detail 长文本、标题显示在上侧
<ListRow title='Long detail' detail={
'React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.'
} />
<ListRow title='Title place top' detail={
'React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.'
} titlePlace='top' />
显示图标
<ListRow title='Icon' icon={require('../icons/config.png')} />
大于号指示图标、自定义指示图标
<ListRow title='Accessory indicator' accessory='indicator' />
<ListRow title='Custom accessory' accessory={<Image source={require('../icons/location.png')} />} />
可点击行
<ListRow title='Press able' onPress={() => alert('Press!')} />
滑动操作按钮
<ListRow
title='Swipe able'
swipeActions={[
<ListRow.SwipeActionButton title='Cancel' />,
<ListRow.SwipeActionButton title='Remove' type='danger' onPress={() => alert('Remove')}/>,
]}
/>