I need to render some HTML code in my React Native app. But it seems like the WebView can't be set to auto height. Please help me with this problem. This is my code.
<View style={{
paddingLeft: 18,
paddingRight: 18,
paddingTop: 10,
paddingBottom: 10,
}}>
<WebView source={{
html: HTML
}}
javaScriptEnabled={true}
style={{
height: 200,
backgroundColor: colors.white,
marginTop: 20
}} />
</View>
As you can see here, I need to define a specific value to the height prop. How can I make its height dynamic, based on the inner HTML content height?
I will suggest you use the react-native-autoheight-webview which gives you the auto height webview for React Native.
You can check it here - https://www.npmjs.com/package/react-native-autoheight-webview
I wrap WebView inside a View, and set the height from the View.
<View style={{ height: 200 }}>
<WebView
automaticallyAdjustContentInsets={false}
source={{uri: 'https://player.vimeo.com/video/24156534?title=0&byline=0&portrait=0'}}
/>
</View>
heres where i get the answer pls give him credit... React native: webview height
Related
Here is my code
<Image
resizeMode="contain"
source={require('../../assets/splash.gif')}
style={{ width: '100%', alignSelf: 'center' }}
/>
How can I control the gif to loop only once while first render? thanks.
use ControlledGifView component from react-native-controlled-gif library
react-native-controlled-gif
In this example i tried to display two different things inside a listitem.
The problem is i couldn't manage to find out how can i show the "item.date" on the left of the line and "Click to show." string on the right of the line.
Solution with spaces
The code sample of the image is below:
<Text style={styles.textline}>{"\n"+item.date}<Text style={styles.continuetext}>{Array(22).fill('\t').join('')}Click to show.</Text></Text>
I have managed to do it by adding multiple "\t" to the string but its a bad solution and it can change according to screen size.
And i have already tried to wrap the two text tags inside a view tag and gave the prop "flex:1" to the view tag, then gave the text tag prop "alignSelf: "flex-end" " didn't work either.
Edit: I have tried to wrap texts inside a view like mentioned in the comments didn't work.
Full code here:
return( <ListItem thumbnail key={i}>
<Thumbnail square source={{ uri: 'url' }} />
<Body>
<TouchableScale transparent onPress={ ()=>{ Linking.openURL(item.url)}}
Component={TouchableScale}
friction={90}
tension={100}
activeScale={0.95}>
<Text>{item.head+"\n"}</Text>
<Text note numberOfLines={2}>{item.details}</Text>
<View style={{ flex:1,justifyContent: 'space-between', flexDirection: 'row' }}>
<Text style={{ fontSize:12,color: 'gray'}}>{"\n"+item.date}</Text>
<Text style={{ fontSize:12,color: '#143f90'}}>Click to show.</Text>
</View>
</TouchableScale>
</Body>
</ListItem>);
I am kinda new to React Native, any help would be great.
You can do something like that:
<View style={{ flex: 1, justifyContent: 'space-between', flexDirection: 'row' }}>
<Text>{item.date}</Text>
<Text>Click to show</Text>
</View>
Iam beginner in react native. In my project iam using native base component and in content area using the icon and input, when screen load i can not hold scroll on input how can I fix this bug. Thanks for your help
my code:
<Container style={{ backgroundColor: '#ffffff', alignItems: 'center', flex: 1 }}>
<Content>
<Label style={registerstyle.LableS}>گذرواژه</Label>
<Input />
</Content>
</Container>
example gif:
I am using expo to debug an application. In debug mode (expo start) advertising is correctly displayed
on when I build the application (expo build: android) advertising is not displayed
when using the test key, the advertisement works correctly in apk
checked the key. google admob it's active
Do I need to make some settings to display admob ads
I watched the documentation there described only about inserting the code into the program. I use the library expo-ads-admob
<View style = {{ width: '100%', alignItems: 'center' }}>
<AdMobBanner
bannerSize="fullBanner"
adUnitID="ca-app-pub-3940256099942544/6300978111"
testDeviceID="EMULATOR" />
<TouchableHighlight onPress={() =>{this.props.navigation.navigate('SearchObjectPage');} style={{
marginTop: 30,
width: '90%',
padding: 10,
backgroundColor: '#a1cfed',
}}>
<View>
<View style={{flexDirection:'row'}}>
<Image source={require('./src/red.png')} style={ styles.button } resizeMode="contain"/><Text style = { styles.text }>{'check'}</Text>
</View>
</View>
</TouchableHighlight>
</View>
For simulators/emulators you can use EMULATOR for the test device ID.
However, if you create an apk, the divice will not run because it is not an emulator.
I want to make button in react native with dynamic width. I just want to supply text in button component it create button according to text width.
<View style={{justifyContent: 'center', alignItems: 'center'}}>
<TouchableHighlight style={{backgroundColor:'red', paddingTop:10, paddingLeft:20, paddingRight:20, paddingBottom:10}}>
<Text style={{color:'white', fontWeight:'bold'}}>BUTTON 2</Text>
</TouchableHighlight>
</View>
To accomplish this, use padding. I've set up an example here.
<TouchableHighlight style={{backgroundColor:'red', paddingTop:10, paddingLeft:20, paddingRight:20, paddingBottom:10}}>
<Text style={{color:'white', fontWeight:'bold'}}>BUTTON 2</Text>
</TouchableHighlight>
https://rnplay.org/apps/Hwinnw