Разрыв между левым рисунком и текстом в текстовом представлении

Существует длинный разрыв между левым рисунком и текстом в текстовом представлении.

Разрыв между левым рисунком и текстом в текстовом представлении

Я добавил отступы с возможностью рисования, но это, похоже, не работает. Вот мой код:

<LinearLayout
                android:layout_width = "match_parent"
                android:layout_height = "wrap_content"
                android:orientation = "vertical">

            <android.support.v7.widget.AppCompatTextView
                    android:layout_width = "match_parent"
                    android:layout_height = "24dp"
                    android:background = "#0B6159"
                    android:layout_marginTop = "2dp"
                    android:layout_marginBottom = "2dp"
                    android:layout_marginStart = "32dp"
                    android:layout_marginLeft = "32dp"
                    android:layout_marginEnd = "32dp"
                    android:layout_marginRight = "16dp"
                    android:text = "Add Address"
                    android:textSize = "20sp"
                    android:textColor = "#FFFFFF"
                    android:fontFamily = "@font/aladin"
                    android:gravity = "center"
                    android:drawableLeft = "@drawable/ic_add_circle_outline_black_24dp"
                    android:drawableStart = "@drawable/ic_add_circle_outline_black_24dp"
                    android:drawablePadding = "10dp"
            />
        </LinearLayout> 

Как я могу приблизить рисование к моему тексту

Вы хотите, чтобы «Добавить адрес» рядом с кнопкой «+»?

Anand 18.05.2019 06:48

Да и все в центре

oTwo 18.05.2019 07:02

Как предлагает ответ Ришава Сингла, удалите гравитацию = центр

Anand 18.05.2019 07:04
0
3
1 087
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Удалить android:gravity = "center" из текстового представления:

<LinearLayout
            android:layout_width = "match_parent"
            android:layout_height = "wrap_content"
            android:orientation = "vertical">

        <android.support.v7.widget.AppCompatTextView
                android:layout_width = "match_parent"
                android:layout_height = "24dp"
                android:background = "#0B6159"
                android:layout_marginTop = "2dp"
                android:layout_marginBottom = "2dp"
                android:layout_marginStart = "32dp"
                android:layout_marginLeft = "32dp"
                android:layout_marginEnd = "32dp"
                android:layout_marginRight = "16dp"
                android:text = "Add Address"
                android:textSize = "20sp"
                android:textColor = "#FFFFFF"
                android:fontFamily = "@font/aladin"
                android:drawableLeft = "@drawable/ic_add_circle_outline_black_24dp"
                android:drawableStart = "@drawable/ic_add_circle_outline_black_24dp"
                android:drawablePadding = "10dp"
        />
    </LinearLayout>

Используйте DrawablePadding для поддержания разрыва в соответствии с вашими потребностями.

Это кажется хорошей идеей. Но в этом случае не будет ли положение текста и рисунков меняться в зависимости от размера экрана? Как сделать так, чтобы все было по центру?

oTwo 18.05.2019 07:02

Я проверил, удалив гравитацию и добавив drawablepadding. В этом случае кажется, что отступ только справа. Не слева

oTwo 18.05.2019 07:04

Измените ширину вашего текстового просмотра с родительского соответствия, чтобы обернуть содержимое, а затем используйте android:layout_gravity, чтобы установить все в центре.

Rishav Singla 18.05.2019 07:04

Это работает, но цвет фона ограничивается оберткой. Но это похоже на незначительную проблему. Найдет обходной путь к этому

oTwo 18.05.2019 07:09

если вы хотите задать цвет фона, отдайте его родительскому макету в Linearlayout в вашем случае.

Rishav Singla 18.05.2019 07:13

Благодаря Ришабу нашел обходной путь

  <LinearLayout
    android:layout_width = "match_parent"
    android:layout_height = "wrap_content"
    android:orientation = "vertical"
    android:background = "#0B6159">
    <TextView
        android:layout_width = "wrap_content"
        android:layout_height = "24dp"
        android:layout_marginTop = "2dp"
        android:layout_marginBottom = "2dp"
        android:layout_marginStart = "32dp"
        android:layout_marginLeft = "32dp"
        android:layout_gravity = "center_horizontal"
        android:layout_marginEnd = "32dp"
        android:layout_marginRight = "16dp"
        android:text = "Add Address"
        android:textSize = "20sp"
        android:textColor = "#FFFFFF"
        android:fontFamily = "@font/aladin"
        android:drawableLeft = "@drawable/ic_add_circle_outline_black_24dp"
        android:drawableStart = "@drawable/ic_add_circle_outline_black_24dp"
        android:drawablePadding = "10dp"
        />
</LinearLayout>

Чувак, не нужно добавлять еще один дополнительный линейный макет для этого, скопируй и вставь код ниже: просто задай цвет фона своему родительскому макету android:background = "#0B6159" и установи android:layout_gravity = "center_horizontal" в текстовое представление с обтеканием по ширине

Rishav Singla 18.05.2019 07:26

ваш комментарий правильный. Но у меня есть другие элементы в родительском макете. Так что не хотелось бы, чтобы они тоже меняли цвет. Поэтому добавил дополнительный слой

oTwo 18.05.2019 09:04

Другие вопросы по теме