React-Native进阶_7.TextInput的使用实现搜索功能
2017-08-03 23:30
651 查看
前面使用TabBar 实现了底部tab标签,通过stackNavigator 实现了页面跳转,接下来,使用TextInput 来实现一个搜索功能。
TextInput 属性比较多,不一一介绍,具体可以百度搜索或者结合源码。
下面介绍介个比较常用的属性
<TextInput
style={{height:50}}
placeholder ="搜索 ..."// = android EditText hint
placeholderTextColor="#6435c9"// = hint color
underlineColorAndroid='transparent'// 下划线透明
// clearButtonMode="while-editing"
onChangeText={(query) =>{
this.setState({
query:query,
loaded:false,
});// 当内容改变时执行该方法
}}
onSubmitEditing={this.fetchData.bind(this)}
//secureTextEntry
// onFocus={() =>console.log('onFocus')} //选中文本框
// onBlur={() =>console.log('onBlur')}//离开文本框
// onChange={() =>console.log('onChange')}//文本框内容变化
// onChangeText={(text) =>console.log(text)}//文本框内容变化,变化的内容
// onEndEditing={() =>console.log('onEndEditing')}//文本框编译结束
// onSubmitEditing={() =>console.log('onSubmitEditing')}//按下回车键
// autoFocus
// defaultValue="火星救援"
// autoCorrect={false}
//editable={false}
//keyboardType='url' web-search
/>
实现思路跟前面两个页面一样,集合TabBar 在主页面,添加第三个底部tab标签 搜索标签,搜索页面使用TextInput 实现输入框功能
输入框中输入能容点击回车 跳转到搜索结果列表页,由前面的 stackNavigator 实现 ,点击列表页,跳转到详情页,也是由stackNavigator实现。
const App = StackNavigator({
Main: {screen: SearchForm, navigationOptions: {
title: "搜索",
headerLeft: null,
headerStyle:{
elevation: 0
},
headerTitleStyle:{ alignSelf:'center'},
},},
//搜索结果列表
SearchResult: {screen: SearchResult,
navigationOptions:({navigation,screenProps}) =>({
headerTitle: navigation.state.params.title,
}
)
},
//详情页
Detail: {screen: MovieDetail,
navigationOptions:({navigation,screenProps}) =>({
headerTitle: navigation.state.params.info,
}
)
},
});
展示UI跟前面的列表相同由ListView 实现。
render() {
return (
<View style={styles.Container}>
<TabNavigator>
<TabNavigator.Item
selected={this.state.selectedTab === 'home'}
title="推荐电影"
renderIcon={() => <Image source={TAB_NORMAL_1} style={styles.icon}/>}
renderSelectedIcon={() => <Image source={TAB_PRESS_1} style={styles.icon}/>}
badgeText="1"
onPress={() => this.setState({selectedTab: 'home'})}>
<Feature/>
</TabNavigator.Item>
<TabNavigator.Item
selected={this.state.selectedTab === 'profile'}
title="北美票房"
renderIcon={() => <Image source={TAB_NORMAL_2} style={styles.icon}/>}
renderSelectedIcon={() => <Image source={TAB_PRESS_2} style={styles.icon}/>}
onPress={() => this.setState({selectedTab: 'profile'})}>
<USBox/>
</TabNavigator.Item>
<TabNavigator.Item
renderIcon={() => <Image source={{uri:icons.search}} style={styles.icon}/>}
selected={this.state.selectedTab === 'search'}
title="搜索"
onPress={() => this.setState({selectedTab: 'search'})}>
<Search/>
</TabNavigator.Item>
</TabNavigator>
</View>
);
}
UI效果展示:
源码下载
不论大神还是新手,欢迎加QQ群一起讨论问题学习技术:230274309
TextInput 属性比较多,不一一介绍,具体可以百度搜索或者结合源码。
下面介绍介个比较常用的属性
<TextInput
style={{height:50}}
placeholder ="搜索 ..."// = android EditText hint
placeholderTextColor="#6435c9"// = hint color
underlineColorAndroid='transparent'// 下划线透明
// clearButtonMode="while-editing"
onChangeText={(query) =>{
this.setState({
query:query,
loaded:false,
});// 当内容改变时执行该方法
}}
onSubmitEditing={this.fetchData.bind(this)}
//secureTextEntry
// onFocus={() =>console.log('onFocus')} //选中文本框
// onBlur={() =>console.log('onBlur')}//离开文本框
// onChange={() =>console.log('onChange')}//文本框内容变化
// onChangeText={(text) =>console.log(text)}//文本框内容变化,变化的内容
// onEndEditing={() =>console.log('onEndEditing')}//文本框编译结束
// onSubmitEditing={() =>console.log('onSubmitEditing')}//按下回车键
// autoFocus
// defaultValue="火星救援"
// autoCorrect={false}
//editable={false}
//keyboardType='url' web-search
/>
实现思路跟前面两个页面一样,集合TabBar 在主页面,添加第三个底部tab标签 搜索标签,搜索页面使用TextInput 实现输入框功能
输入框中输入能容点击回车 跳转到搜索结果列表页,由前面的 stackNavigator 实现 ,点击列表页,跳转到详情页,也是由stackNavigator实现。
const App = StackNavigator({
Main: {screen: SearchForm, navigationOptions: {
title: "搜索",
headerLeft: null,
headerStyle:{
elevation: 0
},
headerTitleStyle:{ alignSelf:'center'},
},},
//搜索结果列表
SearchResult: {screen: SearchResult,
navigationOptions:({navigation,screenProps}) =>({
headerTitle: navigation.state.params.title,
}
)
},
//详情页
Detail: {screen: MovieDetail,
navigationOptions:({navigation,screenProps}) =>({
headerTitle: navigation.state.params.info,
}
)
},
});
展示UI跟前面的列表相同由ListView 实现。
render() {
return (
<View style={styles.Container}>
<TabNavigator>
<TabNavigator.Item
selected={this.state.selectedTab === 'home'}
title="推荐电影"
renderIcon={() => <Image source={TAB_NORMAL_1} style={styles.icon}/>}
renderSelectedIcon={() => <Image source={TAB_PRESS_1} style={styles.icon}/>}
badgeText="1"
onPress={() => this.setState({selectedTab: 'home'})}>
<Feature/>
</TabNavigator.Item>
<TabNavigator.Item
selected={this.state.selectedTab === 'profile'}
title="北美票房"
renderIcon={() => <Image source={TAB_NORMAL_2} style={styles.icon}/>}
renderSelectedIcon={() => <Image source={TAB_PRESS_2} style={styles.icon}/>}
onPress={() => this.setState({selectedTab: 'profile'})}>
<USBox/>
</TabNavigator.Item>
<TabNavigator.Item
renderIcon={() => <Image source={{uri:icons.search}} style={styles.icon}/>}
selected={this.state.selectedTab === 'search'}
title="搜索"
onPress={() => this.setState({selectedTab: 'search'})}>
<Search/>
</TabNavigator.Item>
</TabNavigator>
</View>
);
}
UI效果展示:
源码下载
不论大神还是新手,欢迎加QQ群一起讨论问题学习技术:230274309
相关文章推荐
- (转)React Native 使用react-native-image-picker库实现图片上传功能
- React-Native使用Mobx实现购物车功能
- React Native 使用react-native-image-picker库实现图片上传功能
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- DevExpress.LookUpEdit控件实现自动搜索定位功能 兼使用方法(looUpEdit可编辑)
- IOS-搜索功能实现, UIsearchController的使用
- 【Android进阶】使用第三方平台 ShareSDK 实现新浪微博的一键分享功能
- Flex中Tree组件实现导航树搜索定位功能及Tree组件的的使用要点
- React Native Android 使用友盟SDK功能
- [置顶] ExtJs4.2应用:使用ExtJs扩展组件searchfield实现数据搜索功能
- 使用jQuery简单实现模拟浏览器搜索功能
- RN(react native)入坑指南-07,使用navigator实现页面跳转
- dede使用方法----实现英文版的搜索功能
- Android控件使用—AutoCompleteTextView自动补全实现搜索功能
- 使用react-native做一个简单的应用-06商品界面的实现
- 使用EditText和SharedPreferences实现搜索历史记录提示功能
- 使用AutoCompleteTextView和SharePreference实现搜索历史自动提示功能
- ASP.NET jQuery 食谱25 (使用jQuery UI的Autocomplete方法实现文本框的自动搜索填充功能)
- 使用系统控件UISearchBar实现APP中搜索功能
- 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能