javascript - ListView.setClickable() 不起作用。 (Nativescript-Vue)

标签 javascript listview nativescript nativescript-vue nativescript-telerik-ui

我正在编写 Nativescript-Vue 应用程序。

我有一个包含两个子组件的组件。 因此,当我点击第二个按钮中的按钮时,我需要禁用第一个按钮中的 ListView 的滚动。

所以我通过“ref=”获取了 ListView 元素并将其放入商店(Vuex)

<ListView ref="listViewEl" ></ListView>
...
mounted() {
    store.commit('putElInStore', this.$refs.listViewEl)
}

...

putElInStore(state, element) {
    state.listViewEl = element
}

当我点击第二个子组件中的按钮时,我需要禁用 ListView 滚动。所以我使用 store.commit 来做到这一点:

<Button @tap="disableListViewScrolling"></Button>
...
disableListViewScrolling() {
    store.commit('disableScrolling')
}

...

disableScrolling(state) {
    state.listViewEl.nativeView.android.setClickable(false)
}

所以在这种情况下我没有收到任何错误,但根本没有任何反应。这根本行不通。

我还尝试使用 setEnabled(false) 代替。它有效,但不正确。

我想念什么?我的错误在哪里?

提前致谢。

最佳答案

不需要将元素存储在 Vuex 中。如果没有完整的代码,我将为您提供如何执行此操作的总体布局。

<Parent>
    <childOne ref="listViewChild"></childOne>
    <childTwo @disableButtonTapped="$refs.listViewChild.disableClick()"></childTwo>
</Parent>
<childOne> 
   <ListView ref="list"></ListView>
</childOne>

<script>
export defaults {
  methods: {
    disableClick () {
      this.$refs.list.nativeView.android.setClickable(false)
    }
  }
}
</script>
<childTwo> 
   <Button @tap="$emit('disableButtonTapped')"></Button>
</childTwo>

显然这段代码并不准确。

关于javascript - ListView.setClickable() 不起作用。 (Nativescript-Vue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56146762/

相关文章:

javascript - react 堆 :mapStateToProps not rendering the component on state change

vue.js - NativeScript + Vue.js + FontAwesome

android - 如何在启动屏幕中向 Logo 添加填充?

javascript - Nativescript:无法创建应用程序...无法加载模块:...app/main.js

javascript - 如何循环 JSON 并操作其值(转换为字符串、设置固定小数并添加千位分隔符)?

javascript - 如何将数字变量添加到不同变量中的对象

javascript - 如何按每个对象内特定键的 alpha 对数组进行排序?

android - 如何将值从 ListView 适配器传递到 fragment ?

android - 如何更改ListView中多个项目行删除的背景颜色

android - 使用坐标布局 ListView 仅显示预览中的第一项