IOS를 사랑하는 AOS 개발자

[Android] FrameLayout 간단 사용법2 본문

Android ( JAVA )/개발

[Android] FrameLayout 간단 사용법2

아사안개 2021. 12. 21. 13:04
반응형
SMALL

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻

 

 

[Android] FrameLayout 간단 사용법

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 Layout 종류 중 FrameLayout 초 간단 사용법 코드 공유합니다! 원리만 알고있다면 어려운것도 착착 할 수 있을거에

devziner.tistory.com

 

FrameLayout 초초초초 간단 사용법 2

저번에 올린 글이랑 거의.. 뭐.. 같긴한데 2개 이상의 버튼을 클릭 했을 때 동일한 공간에 보여졌다 안보여졌다 하는걸 해볼라고여

언제나 뷰부터 그립니다.

 

activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    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:padding="20dp">

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">

        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼1"
            android:layout_marginRight="30dp"
            android:backgroundTint="#999999"
            />

        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="버튼2"
            android:backgroundTint="#444444"
            />
    </LinearLayout>


    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        >

        <LinearLayout
            android:id="@+id/f1"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="invisible">

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="버튼1 눌렀어요!"
                android:backgroundTint="#8BC34A"

                />
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="버튼1 눌렀어요!"
                android:backgroundTint="#8BC34A"

                />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/f2"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="invisible">

            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="버튼2 눌렀어요!"
                android:backgroundTint="#FF9800"

                />
            <Button
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="버튼2 눌렀어요!"
                android:backgroundTint="#FF9800"
                />

        </LinearLayout>

    </FrameLayout>

</LinearLayout>

저번과는 다르게 LinearLayout 에 android:visibility 를 설정 해주 었어요!

1개 이상의 위젯들을 동일하게 이벤트 처리해줘야할때 ( 저는 특히 visibility 사용할때 많이 썻어요 ) LinearLayout 으로 감싸서

처리를 많이 해줍니다!!

반응형

다 그렸으면 이젠 코드로 갑니다

 

MainActivity
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class MainActivity extends AppCompatActivity  {
    
    // 변수 선언
    Button btn1,btn2;
    LinearLayout f1,f2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ActionBar actionBar = getSupportActionBar();
        actionBar.hide();
        
        // xml 연결
        btn1 = findViewById(R.id.btn1);
        btn2 = findViewById(R.id.btn2);
        f1=findViewById(R.id.f1);
        f2=findViewById(R.id.f2);

        // 클릭 이벤트
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (f1.getVisibility() == v.INVISIBLE){
                    f1.setVisibility(v.VISIBLE);
                    f2.setVisibility(v.INVISIBLE);
                }else {
                    f1.setVisibility(v.INVISIBLE);
                }
            }
        });

        // 클릭 이벤트
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (f2.getVisibility() == v.INVISIBLE){
                    f2.setVisibility(v.VISIBLE);
                    f1.setVisibility(v.INVISIBLE);
                }else {
                    f2.setVisibility(v.INVISIBLE);
                }
            }
        });



    }
}

 

SMALL

 

저번과 거의 똑같쥬? 근데 이번엔 제가 스샷을 찍었어요 ( 신성한 맥북에 Emulator 를 깔았습니다................. 조만간 지워야지 )

 

 

스샷으로 보는 것 보다 스스로 직접 코드 짜서 해보는게 더 좋을 것 같아요!!!!

( 스샷으로 찍어 놓으니 내가 전달하고자 하는 느낌이 제대로 전달 안되는 느낌이랄까... ㅎ)

 

초초초초초초 간단 사용법 2 끝! 

 

이로써 코드는 끝 입니다

 

 

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 

반응형
LIST
Comments