当我单击 TouchableWithoutFeedback 时,如何专注于文本输入?

你好,世界

我有一个文本输入。在这个文本输入中,我有一个字母“O”作为图标。当我按下“O”字母时,我希望 textinput 可以点击,我该怎么做?

现在它不起作用,因为我无法将此属性添加到该字母中。我添加了我的文本输入在应用程序中的外观。先感谢您。

这是 App.js

import React, { useState } from 'react';
import { TouchableWithoutFeedback, StyleSheet, Text, View, SafeAreaView, TextInput, ScrollView, TouchableHighlight } from 'react-native';
import Application from "../icons/application.svg"
import HorizontalCircles from '../HorizontalCircles';
import HorizontalDiscussion from "../HorizontalDiscussion";
import Energy from "../icons/energy.svg"
import Add from "../icons/add.svg"
import Calendar from "../icons/calendar.svg"
import Clock from "../icons/clock.svg"


const MainScreen = ({ navigation }) => {

  const [text, setText] = useState("");
  return (
    // for ios, i add safeareview and flex:1, otherwise height doesnt become 100%
    <SafeAreaView style={{flex:1,}} > 
      <View style={styles.container}>
        <View style={styles.appIcon}>
          <Application height={30} width={22} fill={"#1E2439"} />
          <View style={{ height: 30, width: 30, backgroundColor: "#DBF1F9", borderRadius: 20 }} />
        </View>
        <View style={[styles.input,{ flexDirection: "row", alignItems: "center" }]}>
          <TouchableWithoutFeedback onPress={onfocus(TextInput)}>
            <Text style={{ marginLeft: 5 }}>O</Text>
          </TouchableWithoutFeedback>
          <TextInput style={{ flex: 1 }} placeholder="Search" placeholderTextColor="#B9B9C5" onChangeText={setText} value={text}></TextInput>
        </View>
        <Text>{text}</Text>
        <View style={{ height: 120 }}>
          <ScrollView showsHorizontalScrollIndicator={false} contentContainerStyle={{ marginVertical: 20, alignItems: "center" }} horizontal={true}>
            <View style={{ height: 40, width: 40, backgroundColor: "#FFFFFF", borderRadius: 20, marginRight: 10, borderStyle: "dotted", borderWidth: 5, borderColor: "#E2E2E2" }} />
            <HorizontalCircles colorFirst={"#CFC8FF"} colorSecond={"#4CC98F"} />
            <HorizontalCircles colorFirst={"#FFA2BF"} colorSecond={"#FFD24D"} />
            <HorizontalCircles colorFirst={"#FEE3AA"} colorSecond={"#4DC98F"} />
            <HorizontalCircles colorFirst={"#FEDFCC"} colorSecond={"#B3C2D8"} />
            <HorizontalCircles colorFirst={"#FFA2BF"} colorSecond={"#FF3FFF"} />
            <HorizontalCircles colorFirst={"#F3A5FF"} colorSecond={"#1CB28F"} />
            <HorizontalCircles colorFirst={"#EFBCFF"} colorSecond={"#22398F"} />
            <HorizontalCircles colorFirst={"#AFBFCF"} colorSecond={"#44798F"} />
            <HorizontalCircles colorFirst={"#AEDF5F"} colorSecond={"#98C98F"} />
            <HorizontalCircles colorFirst={"#DDB825"} colorSecond={"#359424"} />
          </ScrollView>
        </View>

        {/* Discussion Part */}
        <Text style={styles.blackText}>Group Discussion On Going</Text>

        <View style={{ height: 250 }}>
          <ScrollView horizontal={true} showsHorizontalScrollIndicator={false} contentContainerStyle={{ flexDirection: "row", alignItems: "center", }}>
            <HorizontalDiscussion color={"#FFF9F2"} />
            <HorizontalDiscussion color={"#E7FBFF"} />
          </ScrollView>
        </View>

        <Text style={styles.blackText}>Todays Task</Text>

        {/* Task Part */}
        <ScrollView style={{ height: 300 }}>
          <View style={{ padding: 30 }}>
            <View style={styles.task}>
              <View style={{ backgroundColor: "#FFEFE2", padding: 10, borderRadius: 13 }}>
                <Energy height={35} width={25} fill={"#FB9238"} />
              </View>

              <View style={{ marginLeft: 15, flex: 1 }}>
                <Text style={styles.blackText}>8 Tasks Today</Text>
                <Text style={styles.grayText}>Meet them & Share your experience</Text>
              </View>

              <View style={{ marginLeft: 5 }}>
                <Add height={35} width={25} fill={"#ABA8BA"} />

              </View>

            </View>

            <View style={styles.task}>
              <View style={{ backgroundColor: "#FEF8E6", padding: 10, borderRadius: 13 }}>
                <Calendar height={35} width={25} fill={"#FCC626"} />

              </View>

              <View style={{ marginLeft: 15, flex: 1 }}>
                <Text style={styles.blackText}>Event</Text>
                <Text style={styles.grayText}>Create & Share Event</Text>
              </View>

              <TouchableHighlight onPress={() => navigation.navigate("NewScreen")}>
                <View>
                  <Add height={35} width={25} fill={"#ABA8BA"} />

                </View>
              </TouchableHighlight>

            </View>

            <Text style={styles.blackText}>Proposed classes</Text>

            <View>
              <Text style={{ color: "#9993D3", fontSize: 18 }}>Math class</Text>
              <View style={styles.proposed}>
                <Text style={{ color: "#706E80", fontSize: 20 }}>Rasyid Hilman</Text>
                <View style={{ height: 35, width: 35, backgroundColor: "#FEE3AA", borderRadius: 25, marginHorizontal: 10, }} />

              </View>

              <View style={styles.proposed}>
                <View style={styles.agendaClockSvg}>
                  <Calendar height={40} width={30} fill={"#D4D3DA"} />
                  <Text style={{ color: "#B0AFB7", fontSize: 18, marginLeft: 10 }}>August 16, 2021</Text>
                </View>

                <View style={styles.agendaClockSvg}>
                  <Clock height={40} width={30} fill={"#C0BFC6"} />
                  <Text style={{ color: "#AFAEB8", fontSize: 18, marginLeft: 10 }}>15:00</Text>
                </View>
              </View>
            </View>
          </View>

        </ScrollView>

      </View>

    </SafeAreaView>
  );
};

const styles = StyleSheet.create({
  container: {
    flex: 1,
    padding: 20,
    backgroundColor: "#FFFFFF",
  },
  appIcon: {
    flexDirection: "row",
    justifyContent: "space-between",
    alignItems: "center",
  },
  input: {
    height: 40,
    borderWidth: .5,
    borderRadius: 10,
    marginVertical: 10,
    backgroundColor: "#F7F6F9",
    marginVertical: 20,
  },
  blackText: {
    fontSize: 20,
    fontWeight: "bold",
  },
  grayText: {
    color: "#A29E97",
    fontSize: 17,
  },
  task: {
    flexDirection: "row",
    alignItems: "center",
    marginBottom: 15,
    justifyContent: "space-between"
  },
  proposed: {
    flexDirection: "row",
    alignItems: "center",
    justifyContent: "space-between"
  },
  agendaClockSvg: {
    flexDirection: "row",
    alignItems: "center",
  }


});

export default MainScreen;

这是我的文本输入: 在此处输入图片说明

尼尔·德索萨

您可以使用useRefreact 中钩子来聚焦任何元素。您只需要创建一个新的 Ref,然后将其分配给<TextInput />任何元素并 onPress 您可以使用inputRef.current.focus()

const MainScreen = ({ navigation }) => {
  const inputRef = useRef();
  const [text, setText] = useState("");
  ...
  ...
<TouchableWithoutFeedback onPress={() => {inputRef.current.focus()}}>
            <Text style={{ marginRight: 25 }}>O</Text>
          </TouchableWithoutFeedback>
          <TextInput style={{ flex: 1 }} placeholder="Search" placeholderTextColor="#B9B9C5" onChangeText={setText} value={text} ref={inputRef}></TextInput>
...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么当我使用 <TouchableWithoutFeedback> 时我的设计消失了?

当我在React Native中使用TouchableWithoutFeedback时,TextInput没有响应

使背景图片从按钮单击时的按钮消失,TouchableWithoutFeedback-React Native?

当我单击链接时 webview 崩溃

当我单击edittextpreference时,EditText输入没有出现

当我单击文本时,OnClickListener不起作用

当我单击文本区域时,未选择ListViewItem

使用jQuery,当我在输入框之外单击时如何更改输入元素的值?

当我单击菜单中的 a 时关闭我的跨度

当我使用js单击按钮时如何隐藏表格?

当我单击evrywhere时,如何关闭jQuery弹出窗口

当我单击子元素时,如何防止模态显示?

当我在弹出窗口之外单击时如何设置动作?

当我从 UITableViewSource 单击 RowSelected 时如何打开 UIViewController

当我在外面单击时如何关闭菜单?

当我单击并拖动鼠标时如何使Jframe移动

当我在 PageView 中单击按钮时如何转到页面?

当我单击超链接时,如何停止Excel?

当我单击“计算”时,程序如何冻结?

当我在reactjs中单击按钮时如何加载函数

当我单击它时如何获得正确的图片

单击元素时角度专注于输入

当我单击带有 jquery 的按钮时,如何从隐藏的输入中返回多个值?

当我单击按钮时,如何使html输入字段为空白?

当我单击 angular.js 中的按钮时,如何添加“正在加载”文本?

当我在文本框中单击时如何在wpf中启用弹出控件?

当我在android编程中单击按钮时如何清除文本视图

当我在输入文本中写一些东西时,如何制作 JSON OBJECT 文件,它只是在单击按钮时复制它

当我在textarea中单击时,它会提交表单