【问题标题】:Determining height of ScrollView content确定 ScrollView 内容的高度
【发布时间】:2019-07-05 11:37:30
【问题描述】:

我有一个 Nativescript-Vue 应用程序,我正在尝试确定 ScrollView 中包含的内容的高度,但是当我在更改之前和之后转储 ScrollView 的各种与高度相关的属性时所包含内容的大小,报告的高度没有差异。

作为一个额外的问题,我真正关心的是确定包含的 RadDataForm Picker 元素的状态(折叠或展开),并且在没有找到任何方法来确定该状态之后,我想我可以通过以下方式回避这个问题查看 ScrollView 内的 RadDataForm 的整体高度。因此,如果您知道如何确定 Picker 状态,那将是一个更好的答案。

这是我尝试过的基本前提:

   let view = this.$refs.scrollView.nativeView;
   let size = view.getActualSize();
   console.dir(size);
   console.log(
      `ht: ${view.height}, ${view.getMeasuredHeight()}, ${view.effectiveHeight}, ${view.scrollableHeight}, ${view.verticalOffset}`
   );

完整的测试代码在这个 Playground: https://play.nativescript.org/?template=play-vue&id=SvC31q&v=3

ScrollView 的 API 在这里: https://docs.nativescript.org/api-reference/classes/_ui_scroll_view_.scrollview

我希望您可以单击按钮将高度状态转储到控制台,单击国家/地区选择器,然后再次单击该按钮,至少可以看到其中一个属性的差异,但到目前为止,没有快乐。

【问题讨论】:

    标签: ios nativescript nativescript-vue nativescript-telerik-ui


    【解决方案1】:

    在 ScrollView 上使用 scrollableWidth / scrollableHeight 可以知道实际可滚动的宽度/高度。

    【讨论】:

    • 感谢您的回答,但如果您查看我粘贴在问题中的代码示例,您会发现我已经在尝试并且没有改变。
    • 对不起,我不明白你的意思,为什么要改变?除非您的视图已更新,否则您的数据表单的高度将保持不变,添加/删除任何元素。
    • 当您单击 RadDataForm 中的选取器时,表单会展开。在我提供的示例 Playground 中,DataForm 从小于 ScrollView 窗口变为大于 ScrollView 窗口。
    • 你能确认一下你说的是iOS还是Android?在 Android 中,它是不展开的弹出框。所以我相信它应该是iOS?
    • 是的,我目前的测试是在 iOS 上进行的。抱歉,我没有意识到它们的实现方式不同。我会调整帖子标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-15
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2022-12-17
    相关资源
    最近更新 更多