Я хочу использовать WebView внутри ScrollView для моего собственного родного приложения. Но если я это сделаю, я не смогу прокрутить свой веб-просмотр, если не отключу прокрутку в scrollview. Однако мне нужен прокрутка как в scrollview, так и в webview. Любые предложения или решения о том, как это сделать?
Response-native - Как прокрутить веб-просмотр внутри scrollview для Android?
Ответ 1
Я также ищу эту проблему в Интернете в течение последних 2-3 дней, и у меня есть отличное решение для этого...
npm install --save react-native-webview-autoheight
После установки без проблем
import MyWebView from 'react-native-webview-autoheight';
<ScrollView style={{ flex: 1, backgroundColor: 'white' }}>
<View style={{ flex: 1, flexDirection: 'column', backgroundColor: 'white' }} pointerEvents={'none'}>
<Text>Hi I am at top</Text>
<MyWebView
//sets the activity indicator before loading content
startInLoadingState={true}
source={{
uri: "https://stackoverflow.com/questions/43781301/react-native-how-do-i-scroll-a-webview-inside-scrollview-for-android"
}}/>
<Text>Hi I am at bottom</Text>
</View>
</ScrollView>
это прекрасно работает для меня..
Ответ 2
Попробуйте следующий код
<ScrollView>
<Text>Text before ScrollView</Text>
<WebView
source={{ uri: 'https://stackoverflow.com/questions/43781301/react-native-how-do-i-scroll-a-webview-inside-scrollview-for-android' }}
style={{
marginTop: 20,
height: 100,
}}
/>
<Text >Text after ScrollView</Text>
<WebView
source={{ uri: 'https://stackoverflow.com/questions/43781301/react-native-how-do-i-scroll-a-webview-inside-scrollview-for-android' }}
style={{
marginTop: 20,
height: 100,
}}
/>
</ScrollView>
Ответ 3
использовать TouchyWebView.java
public class TouchyWebView extends WebView {
public TouchyWebView(Context context) {
super(context);
}
public TouchyWebView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TouchyWebView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
requestDisallowInterceptTouchEvent(true);
return super.onTouchEvent(event);
}
и в макете
<yourpachagename.TouchyWebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
Ответ 4
Попробуйте этот код
heightValue = 1000 // putting 100 will let the Webview scroll normally.
<View> <Text> Viewtiful </Text> </View>
<WebView
source={{uri: 'www.reddit.com'}}
style={{height:heightValue}}
/>
Нашел это здесь.