কীবোর্ড খারিজ না করার সমস্যাটি যদি আপনার কাছে থাকে তবে তা আরও তীব্র keyboardType='numeric'হয়ে উঠবে, কারণ এটি খারিজ করার কোনও উপায় নেই।
স্ক্রোলভিউয়ের সাথে ভিউ প্রতিস্থাপন করা সঠিক সমাধান নয়, যেমন আপনার কাছে একাধিক textInputএস বা buttonগুলি রয়েছে, কীবোর্ডটি আপ থাকাকালীন সেগুলিতে আলতো চাপলেই কেবল কীবোর্ড খারিজ করা হবে।
সঠিক উপায় হ'ল ভিউকে সাথে TouchableWithoutFeedbackকল করা এবং কল করা apKeyboard.dismiss()
সম্পাদনা: আপনি এখন ব্যবহার করতে পারেন ScrollViewসঙ্গে keyboardShouldPersistTaps='handled'একমাত্র কীবোর্ড খারিজ করবেন তখন আলতো চাপুন শিশুদের দ্বারা পরিচালিত হয় না (যেমন অন্যান্য textInputs বা বোতাম ট্যাপ।)
যদি তোমার থাকে
<View style={{flex: 1}}>
<TextInput keyboardType='numeric'/>
</View>
এটিতে পরিবর্তন করুন
<ScrollView contentContainerStyle={{flexGrow: 1}}
keyboardShouldPersistTaps='handled'
>
<TextInput keyboardType='numeric'/>
</ScrollView>
অথবা
import {Keyboard} from 'react-native'
<TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
<View style={{flex: 1}}>
<TextInput keyboardType='numeric'/>
</View>
</TouchableWithoutFeedback>
সম্পাদনা: কীবোর্ড খারিজ করতে আপনি একটি উচ্চতর অর্ডার উপাদানও তৈরি করতে পারেন।
import React from 'react';
import { TouchableWithoutFeedback, Keyboard, View } from 'react-native';
const DismissKeyboardHOC = (Comp) => {
return ({ children, ...props }) => (
<TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
<Comp {...props}>
{children}
</Comp>
</TouchableWithoutFeedback>
);
};
const DismissKeyboardView = DismissKeyboardHOC(View)
সহজভাবে এটি ব্যবহার করুন
...
render() {
<DismissKeyboardView>
<TextInput keyboardType='numeric'/>
</DismissKeyboardView>
}
দ্রষ্টব্য: accessible={false}ইনপুট ফর্মটি ভয়েসওভারের মাধ্যমে অ্যাক্সেসযোগ্য অব্যাহত রাখার জন্য প্রয়োজনীয়। দৃষ্টি প্রতিবন্ধীরা আপনাকে ধন্যবাদ জানাবে!