programing

Android TextView에서 텍스트 오른쪽 정렬

magicmemo 2023. 8. 4. 22:59
반응형

Android TextView에서 텍스트 오른쪽 정렬

나는 있습니다TextView내 신청으로텍스트를 오른쪽으로 정렬하고 싶습니다.다음을 추가하려고 했습니다.

android:gravity="right"

하지만 이것은 저에게 효과가 없습니다.

제가 뭘 잘못하고 있는 걸까요?

저는 당신이 이것을 하고 있다고 생각합니다.android:layout_width = "wrap_content"
이 경우 다음을 수행합니다.android:layout_width = "match_parent"

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

첫 번째 항목은 보기 내 텍스트 자체의 위치에 영향을 미치므로 텍스트를 오른쪽 정렬하려면layout_width=둘 중 하나여야 합니다."fill_parent"또는"match_parent".

두 번째는 상위 뷰 내에서 보기의 위치에 영향을 미칩니다. 즉, 오브젝트 자체(편집 상자 또는 텍스트 뷰)를 상위 뷰 내에서 정렬합니다.

더 나은 해결책은 가장 간단하고 코드 동작의 수정을 덜 하는 것입니다.

만약 당신이 당신의 2개의 속성만으로 이 문제를 해결할 수 있다면요?TextView?

변경할 필요가 없는 대신LinearLayout동작을 변경할 수 있는 속성LinearLayout아이들?

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

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

미래에 또 다른 문제를 일으킬 기회를 갖지 말고 해결책을 찾기 위해 당신의 목표만 바꾸는 것이 무엇이 더 나을까요, 당신의 목표 아버지를 수정하는 것?생각해 보세요 :)

누군가가 여전히 필요로 할 경우

android:gravity="end"

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

텍스트 보기 내부의 텍스트를 오른쪽으로 정렬하시겠습니까? 아니면 텍스트 보기 자체를 부모 레이아웃과 관련하여 오른쪽으로 이동하시겠습니까? 아니면 둘 다를 모두 선택하시겠습니까?

다음 코드 조각:

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

나에게 잘 작동합니다.

android:gravity="right"

기본적으로 선형 레이아웃에서 사용되므로 TextView 또는 EditText를 다음과 같이 설정해야 합니다.

android:layout_width = "match_parent"

그리고.

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

android:layout_alignParentRight="true"

사용하지 않는지 확인합니다.android:layout_width="wrap_content"텍스트를 정렬할 공간이 부족하기 때문에 중력을 설정할 수 없습니다.대신 사용android:layout_width="fill_parent"

(선형 레이아웃) 만들기android:layout_width="match_parent"및 TextView의android:layout_gravity="right"

다음은 제게 적합합니다.

<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" />

참고하십시오.android:layout_alignParentEnd그리고.android:textAlignment두 번째 텍스트 보기의 설정입니다.

다음에 있는 경우RelativeLayout사용할 수 있습니다.android:layout_toRightOf="@id/<id_of_desired_item>"

또는

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

많은 개발자들이 알고 있기 때문에 WEB를 이용한 중력 개념에 대해 설명하겠습니다.

android_layout_gravityfloat:left|right|top|bottom

에 반에면.android_gravity text_align:centre|left|right

Android에서 float는 Android_layout_gravity이고 text_align:은 Android_gravity입니다.

Android_layout_gravity는 부모에 상대적으로 적용됩니다.Android_gravity는 하위 또는 내부 콘텐츠에 적용됩니다.

Android_gravity는 보기가 match_parent일 때만 작동합니다(가운데에 공간이 있을 때).

사용할 수 있는 항목:

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

이것은 목적에 부합해야 합니다.

android:textAlignment="textStart"

제경에는저, 는우는을 했습니다.Relative Layout당분간emptyString

한 시간 동안 고생한 후에.오직 이것만이 나에게 효과가 있었습니다.

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

layout_toRightOf또는layout_toEndOf둘 다 효과가 있지만, 더 잘 지원하기 위해 둘 다 사용했습니다.

보다 명확하게 하기 위해:

이것이 제가 하려고 했던 것입니다.

enter image description here

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

enter image description here

레이아웃:

<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되지 않습니다.

저도 같은 문제에 직면했고 TextView의 layout_width가 wrap_content를 가지고 있기 때문에 문제가 발생하고 있다고 생각했습니다.layout_width를 match_parent로 지정해야 하며 Android: 중력 = "중력"

<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번 정렬합니다.

추가하려고 합니다.android:gravity="center"안으로TextView

저는 제 경우에 "layout_alignRight" 속성을 사용했고, 텍스트는 다음과 같습니다.

android:layout_alignRight="@+id/myComponentId"

오른쪽 여백을 추가하려면 "Layout_Margin Right" 속성을 예를 들어 다음과 같이 "20dp"로 설정합니다.

android:layout_marginRight="20dp"

Android API 26+에서 TextView에 대해 정당성 정렬이 지원되었습니다.

<TextView ...
    ... android:justificationMode="inter_word" />

기본적으로 값은 없음입니다.

Android TextView JustificationMode none vs inter_word

Android TextView 문서

Android 텍스트 보기 텍스트 정당화에 대한 질문

다음을 사용해 보십시오.

android:justificationMode="inter_word"

이것은 당신의 텍스트를 정당화할 것입니다.

언급URL : https://stackoverflow.com/questions/8969122/right-align-text-in-android-textview

반응형