Computer >> 컴퓨터 >  >> 프로그래밍 >> Android

Android 앱에서 버튼을 숨기거나 보이지 않게 만드는 방법

이 예제는 Android 애플리케이션에서 버튼을 화면에서 숨기거나(보이지 않게) 다시 표시하는 방법을 단계별로 보여줍니다. 버튼의 가시성(visibility)은 setVisibility() 메서드를 통해 손쉽게 제어할 수 있습니다.

주요 개념: INVISIBLE과 GONE의 차이

버튼을 숨길 때는 두 가지 옵션이 있습니다.

  • View.INVISIBLE – 버튼이 화면에 보이지 않지만, 원래 자리와 공간은 그대로 유지됩니다.
  • View.GONE – 버튼이 완전히 사라지고, 해당 영역도 레이아웃에서 제거되어 주변 요소가 공간을 차지합니다.

이 예제에서는 View.INVISIBLEView.VISIBLE을 사용하여 두 버튼이 서로를 번갈아 숨기고 표시하도록 구현합니다.

1단계 – 새 프로젝트 생성

Android Studio에서 File → New Project로 이동한 후, 새 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 새 프로젝트를 만듭니다.

2단계 – 레이아웃 파일 작성

다음 코드를 res/layout/activity_main.xml에 추가합니다. EditText 하나와 Button 두 개가 세로 방향으로 배치된 기본적인 LinearLayout 구조입니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:app="https://schemas.android.com/apk/res-auto"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <EditText android:id="@+id/speed" android:maxLines="1"
        android:layout_marginTop="2dip" android:layout_width="wrap_content"
        android:ems="25" android:layout_height="wrap_content"
        android:autoText="true" android:scrollHorizontally="true" />
    <Button android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="button1" />
    <Button android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text=" button2" />
</LinearLayout>

3단계 – MainActivity 작성

다음 코드를 src/MainActivity.java에 추가합니다. 각 버튼에 클릭 리스너를 등록하고, 클릭 시 상대 버튼의 가시성을 전환하는 로직입니다.

package com.example.sample;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
    OnClickListener listener1=null;
    OnClickListener listener2=null;
    Button button1;
    Button button2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listener1=new OnClickListener() {
            public void onClick(View v) {
                setTitle("button1");
                button1.setVisibility(View.INVISIBLE);
                button2.setVisibility(View.VISIBLE);
            }
        };
        listener2=new OnClickListener() {
            public void onClick(View v) {
                setTitle("button2");
                button2.setVisibility(View.INVISIBLE);
                button1.setVisibility(View.VISIBLE);
            }
        };
        button1=(Button) findViewById(R.id.button1);
        button1.setOnClickListener(listener1);
        button2=(Button) findViewById(R.id.button2);
        button2.setOnClickListener(listener2);
    }
}

동작 방식: button1을 클릭하면 button1은 INVISIBLE 상태가 되어 화면에서 사라지고, button2는 VISIBLE 상태로 나타납니다. 반대로 button2를 클릭하면 그 반대로 동작합니다.

4단계 – 매니페스트 파일 확인

다음 코드를 Manifests/AndroidManifest.xml에 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.example.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
   </application>
</manifest>

앱 실행 및 결과 확인

이제 애플리케이션을 실행해 보겠습니다. 실제 Android 모바일 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run 아이콘을 클릭하세요. 실행 옵션 목록에서 모바일 기기를 선택하면, 해당 기기에 아래와 같은 기본 화면이 표시됩니다.

Android 앱에서 버튼을 숨기거나 보이지 않게 만드는 방법

Android 앱에서 버튼을 숨기거나 보이지 않게 만드는 방법

버튼을 클릭할 때마다 두 버튼이 번갈아 숨겨지고 나타나는 것을 확인할 수 있습니다. 이처럼 setVisibility() 메서드를 활용하면 UI 요소를 동적으로 제어할 수 있으며, 조건에 따라 특정 버튼만 노출해야 하는 다양한 상황에서 유용하게 사용할 수 있습니다.