Nativescript-Vue 移除 iOS ListView 点击颜色

Posted

技术标签:

【中文标题】Nativescript-Vue 移除 iOS ListView 点击颜色【英文标题】:Nativescript-Vue Remove iOS ListView tap color 【发布时间】:2019-05-20 11:30:31 【问题描述】:

如何更改列表项的点击颜色?我的应用程序是深色主题,因此当您单击单元格时,会出现非常难看的白色闪光。我尝试了以下方法:

组件

const ls  = this.$refs.list

ls.itemLoading=(args)=>
  const cell = args.ios;
  cell.selectionStyle = UITableViewCellSelectionStyle.UITableViewCellSelectionStyleNone;

 

我也在我的mounted 方法中尝试了一个具有 ListView 的组件

this.$refs.list日志:

 _uid: 20,
_isVue: true,
'$options':
 parent:
 _uid: 19,
_isVue: true,
'$options': [Object],
_renderProxy: [Object],
_self: [Circular],
'$parent': [Object],
'$root': [Object],
'$children': [Object],
'$refs': [Object],
_watcher: [Object],
_inactive: null,
_directInactive: false,
_isMounted: true,
_isDestroyed: false,
_isBeingDestroyed: false,
_events: [Object],
_hasHookEvent: false,
_vnode: [Object],
_staticTrees: null,
'$vnode': [Object],
'$slots': ,
'$scopedSlots': ,
_c: [Object],
'$createElement': [Object],
'$attrs': [Getter/Setter],
'$listeners': [Getter/Setter],
'$store': [Object],
_watchers: [Object],
_props: [Object],
clearHistory: [Object],
go: [Object],
_data: [Object],
clubs: [<…>

【问题讨论】:

【参考方案1】:

itemLoading使用事件绑定

html

<ListView ref="listview" @itemLoading="onItemLoading">

JS

onItemLoading: function(args) 
   const cell = args.ios;
   if (cell) 
     cell.selectionStyle = UITableViewCellSelectionStyle.UITableViewCellSelectionStyleNone;
   

【讨论】:

ListView Nativescript-Vue 上是否有该事件?在文档中它只有 itemTap 的事件:nativescript-vue.org/en/docs/elements/components/list-view 您可以在官方ListView docs 中查看所有事件列表,并遵循适合您框架的语法。 但是这些都是作为事件暴露在 ListView vue 组件上的吗? 是的,很明显。所有核心事件/api 都适用于 Vue。 NativeScript-Vue 只是核心组件的一个包装器,它使 Vue 开发人员可以轻松地重用他们的知识和花哨的框架功能。 谢谢!这对我来说并不明显,因为我只是查看仅列出了 Tap 事件的 nativescript-vue.org 文档。【参考方案2】:

您的代码看起来不错。但是,你只是稍微偏离了一点。

您正在通过您的需求引用listview 模块。您需要在 ListView 的实例而不是模块上使用事件。

因此,在页面/组件的页面事件或 vue 生命周期事件中,您应该从模板中获取 ListView 的实例,然后像拥有它一样使用 itemLoading 事件。 ?

【讨论】:

我尝试将ref 添加到ListViewmounted 我做了this.$refs.list.itemLoading=(args) ... 但没有运气 你真的可以注销list的实例来确认它是ListView吗? 我刚刚更新了&lt;ListView ref="listview"&gt;返回的问题 ListViewthis.$refs.list.nativeView 吗?我不知道 Vue,所以我不确定,之前看到过其他问题。

以上是关于Nativescript-Vue 移除 iOS ListView 点击颜色的主要内容,如果未能解决你的问题,请参考以下文章

ListView 不在 ScrollView 和 StackLayout 内呈现,在 ios 中具有水平方向 - nativescript-vue

NativeScript-Vue 中的分组 UITableView

Nativescript-vue 在 Android 上保存 cookie

尝试在 android (Nativescript-vue) 上使用 RadListView 时出现 Webpack 错误

如何使用 Nativescript-Vue 创建内容/帖子并同时在 Facebook、Twitter 和 LinkedIn 上发布?

如何更改 nativescript-vue 中的 RadDataForm 样式? (Nativescript-Vue)