长按React Native不断增加计数器

时间:2016-07-12 16:41:10

标签: javascript android ios react-native

我在 if(string == "orange"){ String[] word = { " AA\n", "AB\n" }; degrees.setText(Arrays.toString(word).replaceAll("\\[|\\]", ""));; image.setImageResource(R.drawable.bruce); } } public void sentText(){ new MyTask().execute(); } private class MyTask extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... strings) { Bundle b = getArguments(); stringtext = b.getString("text"); return null; } protected void onPostExecute(String result){setText(stringtext); } } } 旁边有一个按钮,按下时会增加其计数器。

TextInput

每次点击按钮时,它当前增加1。我想要实现的是只要用户按下它就不断增加计数器。

我尝试使用 <TouchableWithoutFeedback onPress={() => {this.increaseAmount(step, rowID)}}> <View style={styles.amountPlusButtonContainer}> <Text style={styles.amountButtonText}>+</Text> </View> </TouchableWithoutFeedback> ,但我不确切知道何时停止此问题,也不知道该问题是否正确。

2 个答案:

答案 0 :(得分:4)

我认为使用#home-header .info-shortcuts { width: 1140px; margin: 0 auto; display: block; position: relative; } 是一个很好的解决方案。 致电onPressIn上的setIntervalonPressOut上的setInterval

答案 1 :(得分:1)

我能够使用Animated API使其工作。我使用的参考文献(官方文档除外)是http://browniefed.com/blog/react-native-press-and-hold-button-actions/

   var ACTION_TIMER = 3000;
   var listenerActive = true;

   getInitialState(){
     return{
       pressAction: new Animated.Value(0),
       value: 0,
     };
   },
   componentWillMount: function() {
     this.state.pressAction.addListener((v) => this.setState({value: v.value}));
   },
   handlePressIn: function() {
     if(!listenerActive) {
       this.state.pressAction.addListener((v) => this.setValueAndChangeAmount(v.value));
       listenerActive = true;
     }
     Animated.timing(this.state.pressAction, {
         duration: ACTION_TIMER,
         toValue: 67,
     }).start();
   },
   handlePressOut: function() {
     this.state.pressAction.removeAllListeners();
     this.setState({pressAction: new Animated.Value(Math.ceil(this.state.value))});
     listenerActive = false;
   },

我使用了3000ms和Math.ceil来保持与onPress相同的行为,因为它不能与onPressInonPressOut一起使用。

handlePressOut中删除侦听器会停止计数器。使用pressAction设置新的this.state.value会将值重置为计数器停止的值。