小编edv*_*lme的帖子

React Native 滑出面板和滚动视图

我正在开发一个带有本机反应的应用程序。我有这个 UI 元素,它类似于 iOS 中的 Maps,你从底部和里面滑动一个面板,有一个可滚动的列表。

对于滑出式面板,我使用了一个名为rn-sliding-up-panel. 它有几个道具作为事件监听器。例如

<SlidingUpPanel
  allowDragging={/*Boolean*/}
  onDragStart={()=>{}   /*When it is about to be dragged*/}
  onDrag={()=>{} /*When it is being dragged*/}
  onDragEnd={()={} /*When the user is no longer touching the screen*/}
></SlidingUpPanel>
Run Code Online (Sandbox Code Playgroud)

在它里面,我有一个<ScrollView>包含一个<List>from react-native-elements。据我所知,它只有一个发泄监听器,是:

<ScrollView onScroll={()=>{}}></ScrollView>
Run Code Online (Sandbox Code Playgroud)

我的问题是在列表上滚动实际上会导致面板关闭(它通过向下滑动关闭)。我通过添加一个状态并在滚动上修改它找到了一种解决方法:

state = {
  dragPanel: true,
}
/*===========================================*/
<SlidingUpPanel allowDragging={this.state.dragPanel}>
     <ScrollView onScroll={()={ this.setState({dragPanel: false}) }}></ScrollView>
</SlidingUpPanel>
Run Code Online (Sandbox Code Playgroud)

但是,我找不到恢复拖动的方法,并且它的启动效率不高。


TL; 博士

有没有一种有效的方法可以在 SlidingUpPanel 内实现 ScrollView 而没有每个重叠的事件?也许使用类似的东西function(e){e.preventDefault();}

javascript user-interface reactjs react-native

3
推荐指数
1
解决办法
4870
查看次数

C++ 中的 std::variant cout

我对 CPP 比较陌生,最近偶然发现std::variant了 C++17。

但是,我无法<<在此类数据上使用运算符。

考虑

#include <iostream>
#include <variant>
#include <string>
using namespace std;
int main() {

    variant<int, string> a = "Hello";
    cout<<a;
}
Run Code Online (Sandbox Code Playgroud)

我无法打印输出。有没有什么简短的方法可以做到这一点?非常感谢你。

c++ operator-overloading variant

3
推荐指数
2
解决办法
993
查看次数