안드로이드 TextView에서 텍스트를 오른쪽 정렬


215

나는이 TextView내 응용 프로그램에서. 텍스트를 오른쪽에 정렬하고 싶습니다. 나는 추가를 시도했다 :

android:gravity="right"

그러나 이것은 나를 위해 작동하지 않습니다.

내가 뭘 잘못하고 있니?

답변:


193

나는 당신이 이것을하고 있다고 생각합니다 : android:layout_width = "wrap_content"
이것이 사실이라면, 이렇게하십시오 :android:layout_width = "match_parent"


2
@Bishan 채우기는 나머지 공간을 채우고, 일치하면 부모의 너비와 동일하게 설정됩니다
Troy Cosentino

11
실제로 fill_parent와 match_parent는 동일합니다. fill_parent가 사람들을 혼란스럽게했기 때문에 이름이 match_parent로 변경되었습니다.
Edward Falk

158

일반적으로와 android:gravity="right"다릅니다 android:layout_gravity="right".

첫 번째는보기 내에서 텍스트 자체의 위치에 영향을 미치므로 텍스트를 올바르게 정렬하려면 또는 layout_width=중 하나 여야합니다 ."fill_parent""match_parent"

두 번째는 부모 내부의보기 위치, 즉 부모보기 내부의 객체 자체 (편집 상자 또는 텍스트보기) 정렬에 영향을 미칩니다.


83

더 좋은 솔루션은 가장 간단한 솔루션이고 코드 동작에서 수정이 적은 솔루션입니다 .

이 속성을 2 속성으로 만 해결할 수 있다면 TextView어떨까요?

LinearLayout자녀의 행동 을 바꿀 수있는 속성 을 변경해야하는 대신 LinearLayout?

이 방법을 사용하면 LinearLayout속성과 동작 을 변경할 필요가 없으며 대상에 다음 두 속성 만 추가하면됩니다 TextView.

android:gravity="right"
android:textAlignment="gravity"

미래에 다른 문제를 일으킬 수있는 기회를 얻는 대신 목표를 변경하여 솔루션을 해결하는 것이 더 나은 방법은 무엇입니까? 생각 해봐 :)


android 패키지에서 'textAlignment'리소스에 대한 리소스 식별자를 찾을 수 없다는 오류가 발생합니다.
anu

TextView속성을 사용 하고 있다고 확신 하십니까? -당신은 여기 참조에서 속성을 확인할 수 있습니다 : developer.android.com/reference/android/view/…
Paulo Roberto Rosa

4
textAlignment가 API 레벨 17 (Android 4.2)에 추가되었습니다. 이것이 작동하려면 에뮬레이터 / 장치가 4.2 이상을 실행해야합니다.
thanhtd

Android 4.1.2에서이 textAlignment 속성을 사용하려고하는데 "textAlignment '속성에 대한 자원 식별자를 찾을 수 없습니다"라는 오류가 발생했습니다. 이 오류에 대한 답변은 stackoverflow.com/a/20176191/723507 에서 찾을 수 있습니다 . 4.0.3에서 어떻게 사용할 수 있습니까?
thanhtd

20

android:layout_gravity부모 레이아웃을 기준으로 텍스트보기를 정렬하는 데 사용됩니다. android:gravity텍스트보기 내에서 텍스트를 정렬하는 데 사용됩니다.

텍스트보기 내부의 텍스트를 오른쪽으로 정렬하려고합니까, 또는 부모 레이아웃과 관련하여 텍스트보기 자체를 오른쪽으로 이동 하시겠습니까?


텍스트보기 내부의 텍스트를 오른쪽으로 정렬하려고합니다
Bishan

11

다음 코드 스 니펫 :

android:textAlignment="textEnd"
android:layout_gravity="end"

나를 위해 잘 작동


11

누군가가 여전히 필요한 경우

android:gravity="end"

그게 뭐야?
gumuruh

LTR에서 텍스트를 오른쪽과 RTL에서 왼쪽으로 정렬합니다
npk

8

android:layout_width="wrap_content"텍스트를 정렬 할 공간이 충분하지 않아 중력을 설정할 수없는 경우 사용 하지 않아야합니다. 대신 사용android:layout_width="fill_parent"


7
android:gravity="right"

기본적으로 선형 레이아웃에서 사용되므로 TextView 또는 EditText의 너비를

android:layout_width = "match_parent"

상대 레이아웃에서 작업 할 때

android:layout_alignParentRight="true"


5

그것이 RelativeLayout당신이 사용할 수있는 경우android:layout_toRightOf="@id/<id_of_desired_item>"

또는

right장치의 모서리에 정렬 하려면 장소android:layout_alignParentRight="true"


4

많은 개발자가 알고 있기 때문에 WEB을 사용하여 중력 개념을 설명하겠습니다 .

android_layout_gravity 행동하다 float:left|right|top|bottom

android_gravity작동 하는 반면text_align:centre|left|right

안드로이드에서 float는 android_layout_gravity이고 text_align :은 android_gravity입니다.

android_layout_gravity는 부모를 기준으로 적용됩니다. 여기서 android_gravity는 하위 또는 내부 콘텐츠에 적용됩니다.

참고 의보기 match_parent 인 경우 (이 센터에 공간이있는 경우) android_gravity에만 작동합니다.


3

아래는 나를 위해 작동합니다.

<TextView
    android:id="@+id/tv_username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Sarah" />

<TextView
    android:id="@+id/tv_distance"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/tv_username"
    android:layout_alignParentEnd="true"
    android:layout_toEndOf="@+id/tv_username"
    android:text="San Marco"
    android:textAlignment="viewEnd" />

두 번째 TextView 의 android:layout_alignParentEndandroid:textAlignment설정을 참고하십시오 .


2

당신이 사용할 수있는:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"


2

제 경우 Relative Layout에는emptyString

한 시간 동안이 문제를 해결 한 후. 이것 만이 나를 위해 일했습니다 :

android:layout_toRightOf="@id/welcome"
android:layout_toEndOf="@id/welcome"
android:layout_alignBaseline="@id/welcome"

layout_toRightOf또는 layout_toEndOf둘 다 작동하지만 더 잘 지원하기 위해 두 가지를 모두 사용했습니다.

더 명확하게하려면 :

이것이 내가하려고했던 일이었습니다.

여기에 이미지 설명을 입력하십시오

그리고 이것은 에뮬레이터의 출력이었습니다.

여기에 이미지 설명을 입력하십시오

나열한 것:

<TextView
    android:id="@+id/welcome"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="16dp"
    android:layout_marginTop="16dp"
    android:text="Welcome "
    android:textSize="16sp" />
<TextView
    android:id="@+id/username"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@id/welcome"
    android:layout_toRightOf="@id/welcome"
    android:text="@string/emptyString"
    android:textSize="16sp" />

그것을주의해라:

  1. android:layout_width="wrap_content" 공장
  2. Gravity 사용되지 않습니다

1

또한 같은 문제에 직면하여 TextView의 layout_width에 wrap_content가 있었기 때문에 문제가 발생한다고 생각했습니다. match_parent와 layout_width가 있어야하고 android : gravity = "gravity"


1
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent">

  <TextView
    android:id="@+id/tct_postpone_hour"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:text="1"
    android:textSize="24dp" />
</RelativeLayout>

수평 및 수직 중앙에서 1 번 정렬합니다.



0

필자의 경우에는 텍스트에서 "layout_alignRight"속성을 사용했습니다.

android:layout_alignRight="@+id/myComponentId"

오른쪽 여백을 추가하려면 텍스트에서 "Layout_Margin Right"속성을 "20dp"로 설정하십시오.

android:layout_marginRight="20dp"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.