Android 레이아웃에서 왼쪽 및 오른쪽 가장자리에 텍스트 뷰 정렬 있습니다. 간단한 레이아웃을 얻는

Android를 시작하고 있습니다. 간단한 레이아웃을 얻는 데 문제가 있습니다.

단일 행에서 LinearLayout2를 배치 하기 위해 a를 사용하고 싶습니다 TextViews. 하나 TextView는 왼쪽에 있고 다른 하나 는 오른쪽에 있습니다 (CSS에서는 float : left, float : right와 유사).

가능합니까, 아니면 ViewGroup그것을 달성하기 위해 다른 또는 추가 레이아웃 중첩을 사용해야 합니까?

여기까지 내가 가진 것입니다 :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="horizontal" android:padding="10sp">
<TextView android:id="@+id/mytextview1" android:layout_height="wrap_content" android:text="somestringontheleftSomestring" android:layout_width="wrap_content"/>
<TextView android:id="@+id/mytextview2" android:layout_height="wrap_content" android:ellipsize="end"
    android:text="somestringontheright" android:layout_width="wrap_content"/>
</LinearLayout>


답변

RelativeLayoutwith layout_alignParentLeftlayout_alignParentRight:를 사용하십시오 .

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:id="@+id/mytextview1"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:id="@+id/mytextview2"/>

</RelativeLayout>

또한 레이아웃 대신 (또는 ) 을 사용해야 합니다dipdpsp . sp텍스트 설정과 화면 밀도를 반영하여 일반적으로 텍스트 항목 크기 조정에만 사용합니다.


답변

중력 속성을 사용하여 뷰를 “부동”할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="horizontal">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:layout_weight="1"
            android:text="Left Aligned"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="1"
            android:text="Right Aligned"
            />
    </LinearLayout>

</LinearLayout>

답변

LinearLayout(상대 레이아웃 옵션보다 오버 헤드가 적고 더 많은 제어 기능)을 사용하여 수행 할 수 있습니다 . 두 번째보기에 남은 공간을 제공하면 gravity작동 할 수 있습니다. API 16으로 다시 테스트되었습니다.

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Aligned left" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:text="Aligned right" />
</LinearLayout> 

첫 번째 텍스트보기의 크기를 제한하려면 다음을 수행하십시오.

필요에 따라 무게를 조정하십시오. 상대 레이아웃을 사용하면 이와 같은 백분율 가중치를 설정할 수 없으며 뷰 중 하나의 고정 dp 만

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Aligned left but too long and would squash the other view" />

    <TextView
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:gravity="end"
        android:text="Aligned right" />
</LinearLayout>

답변

Rollin_s의 팁으로도 Dave Webb의 답변이 효과가 없었습니다. 오른쪽의 텍스트 TextView는 여전히 왼쪽의 텍스트와 겹쳤습니다TextView .

나는 결국 내가 원하는 행동을 얻었습니다.

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout01"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

<TextView
    android:id="@+id/mytextview1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" />

<TextView
    android:id="@+id/mytextview2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/mytextview1"
    android:gravity="right"/>

</RelativeLayout>

mytextview2는 "android:layout_width"다음과 같이 설정되었습니다."match_parent" .

이것이 누군가를 돕기를 바랍니다!


답변

<TextView
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Hello world" />

<View
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Gud bye" />

답변

왼쪽 및 오른쪽 요소가 컨텐츠를 랩핑하지만 중간 공간이 필요한 경우

<LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    <Space
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>
    <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
</LinearLayout>

답변

이것을 달성하는 다른 많은 방법이 있습니다. 나는 이런 식으로 할 것입니다.

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

    <TextView
        android:id="@+id/textRight"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginTop="30dp"
        android:text="YOUR TEXT ON THE RIGHT"
        android:textSize="16sp"
        android:textStyle="italic" />


    <TextView
        android:id="@+id/textLeft"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_marginTop="30dp"
        android:text="YOUR TEXT ON THE LEFT"
        android:textSize="16sp" />
</RelativeLayout>