Android 레이아웃에서 왼쪽 및 오른쪽 가장자리에 텍스트 뷰 정렬
Android를 시작하고 있습니다. 간단한 레이아웃을 얻는 데 문제가 있습니다.
단일 행에서 LinearLayout
2를 배치 하기 위해 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>
RelativeLayout
with layout_alignParentLeft
및 layout_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>
또한 레이아웃 대신 (또는 ) 을 사용해야 합니다dip
dp
sp
. 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" />
이것을 달성하는 다른 많은 방법이 있습니다. 나는 이런 식으로 할 것입니다.
<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>
Dave Webb의 답변이 저에게 효과적이었습니다. 감사! 여기 내 코드, 이것이 누군가를 돕기를 바랍니다!
<RelativeLayout
android:background="#FFFFFF"
android:layout_width="match_parent"
android:minHeight="30dp"
android:layout_height="wrap_content">
<TextView
android:height="25dp"
android:layout_width="wrap_content"
android:layout_marginLeft="20dp"
android:text="ABA Type"
android:padding="3dip"
android:layout_gravity="center_vertical"
android:gravity="left|center_vertical"
android:layout_height="match_parent" />
<TextView
android:background="@color/blue"
android:minWidth="30px"
android:minHeight="30px"
android:layout_column="1"
android:id="@+id/txtABAType"
android:singleLine="false"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="20dp"
android:layout_width="wrap_content" />
</RelativeLayout>
이미지 : 이미지
왼쪽 및 오른쪽 요소가 컨텐츠를 랩핑하지만 중간 공간이 필요한 경우
<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>
이 코드는 컨트롤을 두 개의 동일한면으로 나눕니다.
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout">
<TextView
android:text = "Left Side"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight = "1"
android:id = "@+id/txtLeft"/>
<TextView android:text = "Right Side"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight = "1"
android:id = "@+id/txtRight"/>
</LinearLayout>
'programing tip' 카테고리의 다른 글
JPA OneToMany가 하위를 삭제하지 않음 (0) | 2020.06.13 |
---|---|
Python 목록의 값으로 .csv 파일 만들기 (0) | 2020.06.13 |
http 오류 503 서비스를 사용할 수 없습니다. (0) | 2020.06.13 |
Homebrew의 PATH를 수정하는 방법? (0) | 2020.06.13 |
Django가 ONCE 만 시작할 때 코드를 실행 하시겠습니까? (0) | 2020.06.13 |