我正在制作这种风格,使用阴影和海拔为android:
shadowColor: colors.shadowColor,
shadowOpacity: 0.5,
shadowRadius: 3,
shadowOffset: {
height: 0,
width: 0,
},
elevation: 2,
Run Code Online (Sandbox Code Playgroud)
我目前正在 Android 上构建 React 本机移动应用程序,我意识到当输入聚焦时(用户在键盘上键入内容),单击事件不适用于其他元素。
例如,当用户在输入中键入内容时,如果用户想要单击“提交按钮”,则单击事件只会取消输入的焦点,但不会触发按钮上的单击事件。
有没有办法在输入焦点时使这两个事件发生?(取消焦点并单击都会触发的元素,就像在网页中一样)
我只发现这个主题似乎有类似的问题,但对我不起作用或者我使用错误? 当 TextInput 获得焦点时,不会触发任何触摸事件
我的代码看起来像这样:
import React, {useState} from 'react'
import { ScrollView, TextInput, TouchableOpacity} from 'react-native'
export default function App(){
return (
<ScrollView
keyboardShouldPersistTaps="always"
>
<TextInput
placeholder="Here is the input to be focused"
/>
<TouchableOpacity
style={{
backgroundColor : "#03a9f4"
}}
onPress={()=>{
console.log("Click triggered !")
}}
>
Submit form
</TouchableOpacity>
</ScrollView>
)
}
Run Code Online (Sandbox Code Playgroud) javascript android reactjs react-native react-native-textinput
我正在尝试在 react native 中实现多行文本输入,但是当用户键入时,文本不会被换行,而是在同一行上水平书写,
我的文本输入的代码如下
<View style={[styles.container, props.containerStyles]}>
<TextInput
style={styles.placeholderStyle}
placeholder={"Placeholder text"}
value={this.state.reviewBody}
onChangeText={body => this.setState({ reviewBody: body })}
numberOfLines={5}
textAlignVertical={"top"}
textBreakStrategy={"highQuality"}
underlineColorAndroid={"transparent"}
autoCorrect
/>
</View>
Run Code Online (Sandbox Code Playgroud)
风格是,
const styles = StyleSheet.create({
container: {
flex: 1,
borderWidth: 2,
borderColor: "#f4f4f4",
width: WIDTH - 40,
maxWidth: WIDTH - 40,
minWidth: WIDTH - 40,
alignItems: "center",
justifyContent: "space-between",
paddingHorizontal: 5,
marginTop: 10,
flexWrap: "wrap",
},
placeholderStyle: {
fontSize: 11,
padding: 0,
flex: 1,
width: WIDTH - 40,
maxWidth: WIDTH - 40,
minWidth: WIDTH …Run Code Online (Sandbox Code Playgroud) 我的 React Native 应用程序中有TextInput组件,当我添加secureEntryText: 'true'密码输入时,我注意到两件事:
1)当我输入密码时,输入密码的左边缘移出输入框的左侧,如下所示:
2)当我取消密码输入焦点时,无论密码有多长,输入的密码末尾都会有一个省略号,如下所示:
有谁知道我如何解决这些问题?
textinput reactjs react-native react-native-text react-native-textinput
某些 iOS 设备似乎在小数点上显示,(逗号)而不是 a .。我相信这与键盘语言/语言环境有关。有没有一种方法可以强制无论键盘语言/语言环境如何都decimal-pad显示.?
<TextInput
rejectResponderTermination={false}
style={[
{
fontSize: entryValueFontSize,
height: height,
},
calculatorStyles.inputsShared,
calculatorStyles.amountInput,
theme.inputsShared,
]}
autoCapitalize={'none'}
placeholder={entryValueLabel}
placeholderTextColor={theme.placeholderTextColor}
keyboardType={'decimal-pad'}
returnKeyType={'done'}
defaultValue={''}
value={isNaN(this.state.entryValue) ? '' : this.state.entryValue}
onChangeText={(entryValue) => {
this.onEntryValueChange(entryValue);
}}
/>
Run Code Online (Sandbox Code Playgroud)
问题:
期望的输出:
我有一个TextInput,secureTextEntry设置为true。当我执行以下步骤时,此输入不必要地清除其所有内容:
有没有办法禁用这种奇怪的行为并允许用户从停止的地方继续输入密码?
我制作了一张自定义动画底部表。它有两个捕捉点。它从屏幕顶部开始,如果向下滚动动画卡,它将出现在屏幕中间,再次向下滚动卡,它将出现在屏幕底部。如果用户用力向下滚动动画卡,那么它将一直滚动到底部。我将此组件制作为可重复使用的组件。
我制作了可重复使用的搜索组件。
我将这两个组件导入到主应用程序组件中。在Animated-Bottom-sheet内,我放置了Search-component。
我已经为键盘和Animated.View设定了条件
如果动画视图从屏幕中部移动到底部并搜索onFocus(键盘出现),则键盘将消失。
如果动画视图位于屏幕底部并且搜索输入onfocus(出现键盘),则它将移动动画视图到屏幕中间。为了这个逻辑,我做了Keyboard.addListener('keyboardDidHide',()=>{....})
我的这个逻辑在 IOS 中完美运行,但在 Android 中,它将所有元素推到屏幕顶部。
有很多关于 KeyboardAvoidingView 的建议,但就我而言,它不起作用。
在react-native的android的AndroidManifest.xml文件中。我做了android:windowSoftInputMode="adjustPan"它,它监听Keyboard.addListener('keyboardDidHide'并将所有元素推到屏幕顶部,如果我做了,android:windowSoftInputMode="adjustPan|adjustResize"那么它不会监听Event-lister。结果,我的逻辑不起作用,它隐藏了 Android 键盘下的动画视图。根据RN-documentation,Event-lister 仅监听adjustResize or adjustPan。
我真的不知道如何解决这个问题
这是我的动画视图组件
import React, { useState } from "react";
import { StyleSheet, Dimensions, Platform, View, Keyboard } from "react-native";
import {
PanGestureHandler,
PanGestureHandlerGestureEvent,
} …Run Code Online (Sandbox Code Playgroud) 这是Android的本机问题。
当 TextInput 被聚焦时,如何处理 Android 中的后退按钮?
BackHandler.addEventListener('hardwareBackPress'. () => {})如果 TextInput 为焦点,则不会捕获任何事件。它会自动关闭键盘。
(实际上我想要实现的是在按下后退按钮并关闭键盘时移除光标)
你可以玩这个世博小吃来了解我在说什么:
有没有办法将文本输入限制在最小长度和最大长度之间。假设我想将文本输入长度限制在 5 到 15 之间,我该怎么做?
我有一个奇怪的问题,当 TextInput 放置在子功能组件中时,键盘在打字时一直关闭。如果 TextInput 直接放在父组件下,则不存在此问题。这是我的代码
const SignInScreenC = props => {
// define Hook states here
const [email, setEmail] = useState("");
const [password, setPassword] = useState("");
const [isEmailEmpty,setIsEmailEmpty] = useState(false);
const [isEmailValid,setIsEmailValid] = useState(true);
const [isPasswordEmpty,setIsPasswordEmpty] = useState(false);
/**
* Called when Sign in is clicked.
* checks if the form is valid
*/
const _OnSignInClicked = () => {
if(_isFormValid()) {
//make api call
}
}
/* Checks if the form is valid
*/
const _isFormValid = () => …Run Code Online (Sandbox Code Playgroud) react-native ×10
android ×3
reactjs ×3
textinput ×2
forms ×1
javascript ×1
keyboard ×1
nested ×1