React Native入门——布局实践:开发京东客户端首页(一(1)
现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提
‘use strict’;
import React, {
Component
Image,
TextInput
View,
StyleSheet
} from ‘react-native’;
接着声明类和样式,之所以使用export,是因为要在其他类中使用(如:MainScreen)
[javascript] view plain copy
-
export default class Header extends Component {
-
}
-
const styles = StyleSheet.create({
-
});
export default class Header extends Component {
}
const styles = StyleSheet.create({
});
然后在Header类的render()方法中编写JSX代码,在StyleSheet.create()方法中,编写类CSS的样式,如下:
[javascript] view plain copy
-
export default class Header extends Component {
-
render() {
-
return (
-
)
-
}
-
}
-
const styles = StyleSheet.create({
-
container: {
-
flexDirection: ’row’,
-
paddingLeft: 10,
-
paddingRight: 10,
-
paddingTop: Platform.OS === ’ios’ ? 20 : 0, // 处理iOS状态栏
-
height: Platform.OS === ’ios’ ? 68 : 48, // 处理iOS状态栏
-
backgroundColor: ’#d74047’,
-
alignItems: ’center’
-
}});
export default class Header extends Component {
render() {
return (
)
}
}
const styles = StyleSheet.create({
container: {
flexDirection: ‘row’,
paddingLeft: 10,
paddingRight: 10,
paddingTop: Platform.OS === ‘ios’ ? 20 : 0, // 处理iOS状态栏
height: Platform.OS === ‘ios’ ? 68 : 48, // 处理iOS状态栏
backgroundColor: ‘#d74047’,
alignItems: ‘center’
}});
然后我们在模拟器或者真机上跑一下,看看效果

嗯,不错,貌似是我们想要的效果!接着把图片资源导入项目中去,很简单,只需要在目录创建文件夹,将图片复制进去,WebStorm等IDE即可自动识别

根据我们之前的分析,完成样式表的设计,如下:
[javascript] view plain copy
-
const styles = StyleSheet.create({
-
container: {
-
flexDirection: ’row’, // 水平排布
-
paddingLeft: 10,
-
paddingRight: 10,
-
paddingTop: Platform.OS === ’ios’ ? 20 : 0, // 处理iOS状态栏
-
height: Platform.OS === ’ios’ ? 68 : 48, // 处理iOS状态栏
-
backgroundColor: ’#d74047’,
-
alignItems: ’center’ // 使元素垂直居中排布, 当flexDirection为column时, 为水平居中
-
},
-
logo: {
-
height: 24,
-
width: 64,
-
resizeMode: ’stretch’ // 设置拉伸模式
-
},
-
searchBox: {
-
height: 30,
-
flexDirection: ’row’,
-
flex: 1, // 类似于android中的layout_weight,设置为1即自动拉伸填充
-
borderRadius: 5, // 设置圆角边
-
backgroundColor: ’white’,
-
alignItems: ’center’,
-
marginLeft: 8,
-
marginRight: 12
-
},
-
scanIcon: {
-
height: 26.7,
-
width: 26.7,
-
resizeMode: ’stretch’
-
},
-
searchIcon: {
-
marginLeft: 6,
-
marginRight: 6,
-
width: 16.7,
-
height: 16.7,
-
resizeMode: ’stretch’
-
},
-
voiceIcon: {
-
marginLeft: 5,
-
marginRight: 8,
-
width: 15,
-
height: 20,
-
resizeMode: ’stretch’
-
},
-
inputText: {
-
flex: 1,
-
backgroundColor: ’transparent’,
-
fontSize: 14
-
}
-
});
const styles = StyleSheet.create({
container: {
flexDirection: ‘row’, // 水平排布
paddingLeft: 10,
paddingRight: 10,
paddingTop: Platform.OS === ‘ios’ ? 20 : 0, // 处理iOS状态栏
height: Platform.OS === ‘ios’ ? 68 : 48, // 处理iOS状态栏
backgroundColor: ‘#d74047’,
alignItems: ‘center’ // 使元素垂直居中排布, 当flexDirection为column时, 为水平居中
},
logo: {
height: 24,
width: 64,
resizeMode: ‘stretch’ // 设置拉伸模式
},
searchBox: {
height: 30,
flexDirection: ‘row’,
flex: 1, // 类似于android中的layout_weight,设置为1即自动拉伸填充
borderRadius: 5, // 设置圆角边
backgroundColor: ‘white’,
alignItems: ‘center’,
marginLeft: 8,
marginRight: 12
},
scanIcon: {
height: 26.7,
width: 26.7,
resizeMode: ‘stretch’
},
searchIcon: {
marginLeft: 6,
marginRight: 6,
width: 16.7,
height: 16.7,
resizeMode: ‘stretch’
},
voiceIcon: {
marginLeft: 5,
marginRight: 8,
width: 15,
height: 20,
resizeMode: ‘stretch’
},
inputText: {
flex: 1,
backgroundColor: ‘transparent’,
fontSize: 14
}
});
请认真注意上面代码中的注释,标有注释的地方,即为和普通iOS、Android开发不太一样的地方!
由于我们已经将父级元素的排布方向改为水平,所以我们只需将需要展现的元素放入的子元素即可,如下代码所示:
[javascript] view plain copy
-
export default class Header extends Component {
-
render() {
-
return (
-
<TextInput
-
keyboardType=’web-search’
-
placeholder=’搜索京东商品/店铺’
-
style={styles.inputText}/>
-
)
-
}
结语
- 现在随着短视频,抖音,快手的流行NDK模块开发也显得越发重要,需要这块人才的企业也越来越多,随之学习这块的人也变多了,音视频的开发,往往是比较难的,而这个比较难的技术就是NDK里面的技术。
- 音视频/高清大图片/人工智能/直播/抖音等等这年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以AndroidNDK技术已经是我们必备技能了。
- 要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
- OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且
- OpenCV/OpenGl/这些又是图像处理必备知识,下面这些我都是当年自己搜集的资料和做的一些图,因为当年我就感觉视频这块会是一个大的趋势。所以提前做了一些准备。现在拿出来分享给大家。
[外链图片转存中…(img-ccKmJges-1714513389628)]
[外链图片转存中…(img-1CCVsl2v-1714513389629)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)