Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Place icon on same line as text

I'm trying to place my icon on the same line as 2 Replies.

Here's a screenshot of how it looks:

enter image description here

I'd like to have it to the right of the line, as the arrow shows.

Here's how my Component's render function looks:

  render: function() {
    return (
      <TouchableHighlight onPress={this.props.onSelect}>
        <View style={styles.container}>
          <Image source={{uri: this.state.image}}
                 style={styles.image} />
          <View style={styles.postDetailsContainer}>
            <Text style={styles.postTitle}>
              {this.state.name}
            </Text>
            <Text style={styles.postDetailsLine}>
              {this.state.comment}
            </Text>
            <View>
            <Text style={styles.postChildrenDetails}>
              {this.props.comment.child_comments_count} Replies
            </Text>
            <Icon
              name='fontawesome|comments-o'
              size={25}
              color='#D6573D'
              style={styles.icon}
            />
            </View>
            <View style={styles.separator} />
          </View>
        </View>
      </TouchableHighlight>
      )
  }

Here's how my StyleSheet looks:

  container: {
    flex: 1,
    flexDirection: 'row',
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#FFFFFD',
  },
  image: {
    height: 48,
    width: 48,
    borderRadius: 25,
    marginTop: 10,
    alignSelf: 'center',
    marginRight: 15,
    marginLeft: 15
  },
  postDetailsContainer:{
    flex: 1,
  },
  postTitle: {
    fontSize: 15,
    textAlign: 'left',
    marginTop: 10,
    marginBottom: 4,
    marginRight: 10,
    color: '#D6573D'
  },
  postDetailsLine: {
    fontSize: 12,
    marginRight: 10,
    color: 'gray',
  },
  postChildrenDetails: {
    fontSize: 12,
    marginTop: 5,
    marginBottom: 10,
    marginRight: 10,
    color: 'gray',
    textAlign: 'right',
    flex: 1
  },
  separator: {
    height: 0.5,
    backgroundColor: '#CCCCCC',
  },
  icon: {
    flex: 1,
    textAlign: 'right',
    width: 25,
    height: 25
  }
})
like image 517
Richard Kho Avatar asked Jun 28 '15 04:06

Richard Kho


People also ask

How do I align text and icon on same line?

If you want to make a text appear vertically aligned next to a Font Awesome icon, you can use the CSS vertical-align property set to “middle” and also, specify the line-height property. Change the size of the icon with the font-size property.

How do you put icons next to text in HTML?

To insert an icon, add the name of the icon class to any inline HTML element. The <i> and <span> elements are widely used to add icons. All the icons in the icon libraries below, are scalable vector icons that can be customized with CSS (size, color, shadow, etc.)

How do I get text icons side by side?

display: To display text and icons side by side, we will use the display: flex property. float: To set the icon on the right side of the div, we use float: right property.

How do you put a picture on the same line of text in HTML?

Using the float property of CSS will allow you to place an image and text on the same line without breaking the line break. Or Alternatively, you should use the flexbox method of CSS that uses the flex property to make sure that images and lines are aligned in the same line.


1 Answers

I had the same challenge and for anyone having the same issue, here is how I went about solving it.

Wrap the Icon and the Text in a View like @Colin Ramsey said above in the comments

It will look like this:

<View style={{ flexDirection: 'row', justifyContent: 'space-between' }}> <Icon name="ios-chat" size={20} /> <Text> 2 replies </Text> </View>

Shalom!

like image 198
Chiamaka Nwolisa Avatar answered Oct 24 '22 21:10

Chiamaka Nwolisa