1.搜索模块
GDSearch.js
/*** 搜索页面*/
import React, { Component } from 'react';
import {StyleSheet,Text,View,TouchableOpacity,Image,ListView,Dimensions,ActivityIndicator,Modal, // 模态AsyncStorage, // 缓存数据库(数据持久化)TextInput, // 输入框组件
} from 'react-native';// 引入 下拉刷新组件
import {PullList} from 'react-native-pull';
// 导航器
import CustomerComponents, {Navigator
} from 'react-native-deprecated-custom-components';// 获取屏幕宽高
const {width, height} = Dimensions.get('window');
// 监听 键盘函数
const dismissKeyboard = require('dismissKeyboard');// 引入自定义导航栏组件
import CommunalNavBar from '../main/GDCommunalNavBar';
// 引入 公共cell
import CommunalCell from '../main/GDCommunalCell';
// 引入 详情页 组件
import CommunalDetail from '../main/GDCommunalDetail';
// 引入 空白页组件
import NoDataView from '../main/GDNoDataView';export default class GDSearch extends Component {// 构造constructor(props) {super(props);// 初始状态this.state = {dataSource: new ListView.DataSource({rowHasChanged:(r1, r2) => r1 !== r2}), // 数据源 优化loaded: false, // 用于判断是否显示空白页isModal: false, // 用于判断模态的可见性};// 全局定义一个空数组用于存储列表数据this.data = [];this.changeText = '';// 绑定this.loadData = this.loadData.bind(this);this.loadMore = this.loadMore.bind(this);}// 加载最新数据网络请求loadData(resolve) {if (!this.changeText) return;let params = {"q" : this.changeText};HTTPBase.get('http://guangdiu.com/api/getresult.php', params).then((responseData) => {// 情况数组(刷新时)this.data = [];// 拼接数据this.data = this.data.concat(responseData.data);// 重新渲染this.setState({dataSource: this.state.dataSource.cloneWithRows(this.data),loaded:true,});// 关闭刷新动画if (resolve !== undefined){setTimeout(() => {resolve();}, 1000);}// 存储数组中最后一个元素的idlet searchLastID = responseData.data[responseData.data.length - 1].id;AsyncStorage.setItem('searchLastID', searchLastID.toString());}).catch((error) => {})}// 加载更多数据的网络请求loadMoreData(value) {let params = {"q" : this.changeText,"sinceid" : value};HTTPBase.get('http://guangdiu.com/api/getresult.php', params).then((responseData) => {// 拼接数据this.data = this.data.concat(responseData.data);this.setState({dataSource: this.state.dataSource.cloneWithRows(this.data),loaded:true,});// 存储数组中最后一个元素的idlet searchLastID = responseData.data[responseData.data.length - 1].id;AsyncStorage.setItem('searchLastID', searchLastID.toString());}).catch((error) => {})}// 加载更多数据操作loadMore() {// 读取idAsyncStorage.getItem('searchLastID').then((value) => {// 数据加载操作this.loadMoreData(value);})}// 返回上一页pop() {// 回收键盘dismissKeyboard();this.props.navigator.pop();}// 返回左边按钮renderLeftItem() {// 将组件返回出去return(
}const styles = StyleSheet.create({container: {flex: 1,alignItems: 'center',},navbarLeftItemStyle: {width:20,height:20,marginLeft:15,},navbarTitleItemStyle: {fontSize:17,color:'black',marginRight:50},toolsViewStyle: {width:width,height:44,flexDirection:'row',alignItems:'center',justifyContent:'space-between',},inputViewStyle: {height:35,flexDirection:'row',alignItems:'center',justifyContent:'center',backgroundColor:'rgba(239,239,241,1.0)',marginLeft:10,borderRadius:5},searchImageStyle: {width:15,height:15,marginLeft:8},textInputStyle: {width:width * 0.75,height:35,marginLeft:8},listViewStyle: {width:width,},
});
监听 键盘函数
// 监听 键盘函数
const dismissKeyboard = require('dismissKeyboard');// 返回上一页
pop() {// 回收键盘dismissKeyboard();this.props.navigator.pop();
}
效果图:
2.设置模块
GDSettings.js
/*** 设置页面*/
import React, { Component } from 'react';
import {StyleSheet,Text,View,Image,TouchableOpacity,ScrollView,
} from 'react-native';// 引入自定义导航栏组件
import CommunalNavBar from '../main/GDCommunalNavBar';
// 引入 设置页 Cell组件
import SettingsCell from './GDSettingsCell';export default class GDSettings extends Component {// 返回上一页pop() {this.props.navigator.pop();}// 返回左边按钮renderLeftItem() {// 将组件返回出去return(
}const styles = StyleSheet.create({container: {flex:1},navbarLeftItemStyle: {width:20,height:20,marginLeft:15,},navbarTitleItemStyle: {fontSize:17,color:'black',marginRight:50},scollViewStyle: {backgroundColor:'white',},
});
GDSettingsCell.js
/*** 设置页 Cell*/
import React, { Component, PropTypes } from 'react';
import {StyleSheet,View,Image,Text,Switch,Platform,
} from 'react-native';export default class GDSettingsCell extends Component {static propTypes = {leftTitle:PropTypes.string,isShowSwitch:PropTypes.bool,};// 构造constructor(props) {super(props);// 初始状态this.state = {isOn:false,};}// 返回需要的组件renderRightContent() {let component;if (this.props.isShowSwitch) { // 显示 Switch 按钮component =
}const styles = StyleSheet.create({container: {flex:1,flexDirection:'row',height:Platform.OS === 'ios' ? 44 : 36,justifyContent:'space-between',alignItems:'center',borderBottomColor:'gray',borderBottomWidth:0.5,marginLeft:15,},rightViewStyle:{marginRight:15,},arrowStyle: {width:10,height:10,}
});
效果图:
.