#android
#Android
Вопрос:
В настоящее время у меня есть TextView
, который я хотел бы правильно выровнять с текстом кнопки (а не с самой кнопкой)
Макет выглядит примерно следующим образом
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text view"
android:id="@ id/textView"
tools:textColor="#ff000000"
android:textStyle="normal|bold"
android:textSize="18sp" />
<Button
android:text="Button Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:id="@ id/button"
android:drawableLeft="@drawable/flag_za"
android:drawablePadding="10dp" />
</LinearLayout>
Как вы можете видеть, верхняя TextView
часть правильно выровнена сама с Button
собой. Однако я бы хотел, TextView
чтобы он был выровнен с «ТЕКСТОМ КНОПКИ».
Мне было интересно, как я могу выполнить вычисление, чтобы определить, сколько требуется заполнения, чтобы моя TextView
воля была правильно выровнена с «ТЕКСТОМ КНОПКИ»? (Вместо позиционирования TextView
по вертикальной красной линии я хотел бы позиционировать TextView
по вертикальной синей линии)
Ответ №1:
Я не думаю, что вы можете рассчитать, как вы предлагаете. Если вам это действительно нужно, я бы создал невидимое изображение того же размера, что и флаг, а затем использовал то же поле отступ, что и в кнопке.
Ответ №2:
Если вы измените свой макет и используете RelativeLayout, вы можете добиться этого. Проблема с этим решением заключается в том, что вам нужно будет использовать пользовательскую кнопку и знать, какая из них больше по высоте (текст или значок):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@ id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:orientation="vertical">
<TextView
android:id="@ id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is text view"
tools:textColor="#ff000000"
android:textStyle="normal|bold"
android:textSize="18sp"
android:layout_alignStart="@ id/button_text"/>
<View
android:id="@ id/button"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignStart="@ id/button_image"
android:layout_alignEnd="@ id/button_text"
android:layout_alignTop="@ id/button_image"
android:layout_alignBottom="@ id/button_image"
android:background="#555"/>
<ImageView
android:id="@ id/button_image"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginTop="32dp"
android:src="@drawable/flag_za"/>
<TextView
android:id="@ id/button_text"
android:text="Button Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:layout_toRightOf="@ id/button_image"
android:paddingLeft="10dp"/>
</RelativeLayout>