0

何らかの理由で、画面の中央に架空のブロックがあり、その部分がこの架空のボックス内にある場合、TextInput または TouchableOpacity/TouchableHighlights (つまり、アイコン、テキスト、パディング、および色を含むボタン) の一部をクリックすることはできません。それは最も奇妙なバグです。それをデバッグしようとして、ScrollView を追加しました。これらの TouchableHighlights をこの架空のボックスの邪魔にならないようにスクロールすると、それらをクリックできます。ボックス内でそれらをスクロールして戻すと、クリックしません。半分入っている場合は、ボタンの半分がクリックされます。あなたはアイデアを得る。

これらのボタンには、プロジェクトの他の部分と同じ CSS とコンポーネント階層を使用しましたが、この架空のボックスの外でも問題なく動作します。本当にビックリです。

これが私のプロジェクトのサンプルコードです。

 <>
                <TouchableWithoutFeedback onPress={Keyboard.dismiss} accessible={false}>
                <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' , backgroundColor: '#cc0000'}}>
                
                    <Image source={require('../../images/logo.png')} style={{}}/>
                    <Text style={{ color: 'white', fontSize:20, fontWeight: "bold", paddingBottom:60}}>iPhone Wallet</Text>
                    <TextInput
                    autoCapitalize="none"
                    onChangeText = {text => this.setUserName(text)}
                    style={{height: 60, fontSize: 20, borderColor: '#c0cbd3', color: 'black', backgroundColor: 'white', borderRadius: 5, width: 300, margin: 10, padding: 10}}
                    placeholder = "Student Email"
                    placeholderTextColor="#000"
                    />
                    <TextInput
                    autoCapitalize="none"
                    onChangeText = {text => this.setPassword(text)}
                    style={{height: 60, fontSize: 20, borderColor: '#c0cbd3', color: 'black', backgroundColor: 'white', borderRadius: 5, width: 300, margin: 10, padding: 10}}
                    placeholder = "Password"
                    placeholderTextColor="#000"
                    secureTextEntry={true}
                    />
                    <TouchableHighlight 
                    onPress = {() => this.loginUser()}
                    style={{height: 60, borderRadius: 5, width: 300, margin: 10, padding:10, backgroundColor: '#1985ff', alignItems: 'center', justifyContent: 'center', underlayColor:'blue'}} >
                    <View style={{alignItems: 'center', justifyContent: 'center',width: '100%',flexDirection:'row', flexWrap:'wrap'}}>
                            <Ionicons name={'log-in-outline'} size={23} color={'white'}  />
                            <Text style={{color: 'white',fontSize: 20, marginLeft:10}}>Login</Text>           
                        </View>
                    </TouchableHighlight>
                    
                    <TouchableHighlight 
                        onPress = {() => this.resetPasswordAlert()}
                        style={{ marginTop:'5%', padding:10, alignItems: 'center', justifyContent: 'center'}} >
                        <Text style={{color: 'white',fontSize: 17}}>Forgot Password?</Text>
                    </TouchableHighlight>
    
                    <TouchableHighlight 
                        onPress = {() => this.props.navigation.navigate('Signup')}
                        style={{ marginTop:'5%', padding:10, alignItems: 'center', justifyContent: 'center'}} >
                        <Text style={{color: 'white',fontSize: 17}}>Create Account</Text>
                    </TouchableHighlight>

                </View>
                </TouchableWithoutFeedback>
            
            <View style={{ position: 'absolute', marginTop:'85%',marginLeft:'35%'}}>
                <ActivityIndicator animating = {this.state.loadingIndicator} color="#000000" size="large" />
            </View>

</>

iPhone 12エミュレーターと実際のiPhone XRの両方でテストしてきましたが、どちらも同じ効果がありました。これは、私が追加した架空のボックスを含む上記のコードの画像です。ログイン ボタンのかなりの部分がクリックできません (ピンク色)。

ここに画像の説明を入力

この架空のボックスは、スタックナビゲーターまたはタブナビゲーターの両方を使用して画面/コンポーネント間を移動している複数の異なる画面で発生しています。仮想ボックスがすべてのコンポーネントで同じサイズかどうかを判断するのは困難です。どんな助けでも大歓迎です!ありがとう。

4

0 に答える 0