본문 바로가기
JAVA/Android

[Android] Padding/layout_margin, visibility 속성

by 개폰지밥 2021. 9. 16.
반응형

l  Padding, layout_margin 속성

- Padding: 레이아웃과 레이아웃 사이의 간격

- Margin: 위젯과 위젯 사이의 간격

 

| padding

새 위젯이 레이아웃의 경계선에 딱 붙어 있으면 답답해 보인다. 레이아웃에 padding 속성을 사용해보자

Padding은 상화좌우 모두에 지정하는 속성이다. 따로 지정하고 싶으면 paddingTop, paddingBottom, paddingLeft, paddingRight를 이용한다.

android:padding="30dp

LinearLayout에 지정된 padding 속성 때문에 그 안의 요소들이 경계선에서 30dp만큼 떨어져서 출력되었다.

이와 달리 위젯과 위젯사이에 여유를 두고 싶다면 layout_margin 속성을 사용한다.

Layout_margine은 상화좌우 모두에 지정하는 속성이다. 따로 지정하고 싶으면 layout_marginTop, layout_marginBottom, layout_marginLeft, layout_marginRight를 이용한다.

android:layout_margin="20dp"

 

l  visibility 속성

visibility 속성은 위젯을 보일 것인지 여부를 결정한다. 세 가지 값을 지정할 수 있는데 디폴트는 visible로 보이는 상태이다. invisible gone은 안보이는 상태인데, invisible은 보이지 않을 뿐 자리를 유지하지만 gone은 자리까지 보이지 않는다.

| 정리

- visible : 보이는 상태

- invisible : 보이지 않는데 자리는 유지

- gone : 보이지도 않고 자리도 없음.

 

테스트를 하기 위해 버튼 4개를 만들어보자

| 버튼 4개 소스코드

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="버튼1"/>

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="버튼2"/>

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="버튼3"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="버튼4"/>

</LinearLayout>

 

| 결과

 

| 버튼2: invisible 버튼3: gone 적용

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="버튼1"/>

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="버튼2"
        android:visibility="invisible"/>

    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="버튼3"
        android:visibility="gone"/>

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="버튼4"/>

</LinearLayout>

 

| 결과

 

[관련 게시글]

[Android] 안드로이드 스튜디오 설치 : https://seul96.tistory.com/58
[Android] 바람개비 회전 애니메이션 : https://seul96.tistory.com/62
[Android] 화면터치 시 이미지 따라오기 : https://seul96.tistory.com/310
[Android] 그림 글 배치 : https://seul96.tistory.com/63
[Android] 글의 목록 만들기 : https://seul96.tistory.com/311
[Android] manifests, java, res / 레이아웃 유형 : https://seul96.tistory.com/64
[Android] toast 배경색 변경 방법 + 색상표 : https://seul96.tistory.com/65
[Android] 계산기 구현 : https://seul96.tistory.com/66
[Android] 위치 배열 gravity linear layout relative layout 사용 : https://seul96.tistory.com/67
[Android] 액티비티 전환 intent 예시 + 4대 컴포넌트 : https://seul96.tistory.com/68
[Android] 이벤트 처리와 액티비티간 이동 : https://seul96.tistory.com/70
[Android] 리스트뷰 : https://seul96.tistory.com/79
[Android] 커스텀 리스트뷰 : https://seul96.tistory.com/80
[Android] 안드로이드 공공데이터(API) 사용하는 방법 : https://seul96.tistory.com/85
[Android] Padding/layout_margin, visibility 속성 : https://seul96.tistory.com/312
반응형

댓글