#javascript #reactjs #react-native #flexbox
Вопрос:
Я пытаюсь создать стиль, который находится в текстовом компоненте. Насколько я читал на многих форумах, невозможно дать ему поле, ширину, высоту. То, что я в основном пытаюсь сделать, — это получить такой результат:
Дело в том, что если я оберну все в компонент представления в качестве родителя, изображение также будет немного выше текста, и я не смогу его стилизовать.
Любая помощь будет признательна! 🙂
Ответ №1:
Вы можете оформить изображение внутри текстового компонента, как показано ниже, и получить изображение, как на предоставленном вами рисунке
<Text> Hello I am
<Image
style={{ width: 30,
height: 30,}}
source={require('@expo/snack-static/react-native-logo.png')}
/>
{"Text after image" }
</Text>
Комментарии:
1. Вот с какой проблемой я сталкиваюсь. Используя предоставленный вами код, я не могу изменить стиль изображения, чтобы оно было правильно вписано в текст. Я не могу привести, например, маржу. Вместо этого я получаю результат, подобный этой ссылке @RuchiTiwari
Ответ №2:
Для выравнивания вы также можете пойти этим путем
<View
style={{flexDirection: 'row',
alignItems: 'center', justifyContent:"center"
}}>
<Text> {"Text before image"}</Text>
<Image
style={{ width: 30, alignSelf:"center",
height: 30,}}
source={require('@expo/snack-static/react-native-logo.png')}
/>
<Text> {"Text after image" }</Text>
</View>
Результат, как в этой ссылке
Комментарии:
1. Если вы хотите использовать изображение в самом текстовом компоненте, вы можете попробовать стилизовать изображение с позицией:»абсолют», Надеюсь, это поможет <Стиль изображения={{ ширина: 30, позиция:»абсолют», высота: 30,}} источник={требуется(‘@expo/snack-статический/реагировать-родной логотип.png’)} />
2. Это решение работает. Но есть одна проблема. Поскольку каждый текст сам по себе является компонентом, они обрабатываются строка за строкой. Я хочу, чтобы это выглядело так, как будто все похоже на один текст.
Ответ №3:
Используйте ImageBackground.
<Text> Hello I am
<ImageBackground>
style={{ width: 30,
height: 30,}}
source={require('@expo/snack-static/react-native-logo.png')}
resizeMode="cover" style={styles.image}>
<Text style={styles.text}>Inside</Text>
</ImageBackground>
{"Text after image" }
</Text>
Читать документы
Ответ №4:
<Text>Hello: I am{` `}
<Image
source={require('your image path')}
style={{height: 20, width: 20}}
/>
{` `}
John Doe and I want to get a result like this with react-native
</Text>
Комментарии:
1. Не могли бы вы объяснить свой ответ, пожалуйста?
Ответ №5:
Чтобы это выглядело как один текст, разместите результат по этой ссылке, дайте мне знать, если это сработает. Поля и межстрочный интервал в коде можно регулировать с помощью адаптивного размера экрана. Это поместили для справки
<Text style={{lineHeight: 25,}}>Hello I am
<Image
style={{width: 30, height: 30, marginStart:15, marginEnd:15,
marginTop:15, marginBottom:-8}}
source={require('@expo/snack-static/react-native-logo.png')}
/>
<Text style={{lineHeight: 25,}}> Comments like this are just amazing.
</Text>
</Text>
Комментарии:
1. К сожалению, радиус границы не работает на изображении, если оно является дочерним элементом текстового компонента. и я сталкиваюсь с проблемой, когда текст переносится перед завершением строки.