본문 바로가기

카테고리 없음

안드로이드 프로그래밍 - 부분화면 레이아웃 추가

안드로이드 앱 화면의 UI를 구성하는건 res폴더 내에 있는 activity_main.xml 코드이다.

해당 xml코드는 기본적으로 초기화면을 구성하고있는데 초기화면 구성은 manifests 폴더내의 AndroidManifest.xml에서 정의된 대로 가장 먼저 실행된는 것이다.

 

만약에 초기화면을 바꾸고자 한다면 AndroidManifest.xml의 <activity> 내를  수정하여 바꿀 수 있다.

 

 

1.activity_menu.xml의 부분화면 추가하기 버튼을 통해 linearlayout 내에 새로운 화면을 추가해보자.

 

초기화면인 activity_main.xml은 기존 그대로두고, 2번째(activity_menu.xml), 3번째(sub1.xml) 의 layout을 구성하였다.

그리고 linearlayout에 이벤트를 처리해주기 위해 id를 부여해주었다.

 

코드는 아래와 같다.

public class MenuActivity extends AppCompatActivity {

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

        linearLayout = findViewById(R.id.container);

        Button button2;
        button2  = findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                LayoutInflater inflater =(LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                inflater.inflate(R.layout.sub1, linearLayout, true);
                Toast.makeText(getApplicationContext(), "부분 화면이 추가되었습니다.",Toast.LENGTH_LONG).show();
            }
        });
    }


}

 

button2번의 onClick을 통해 LayoutInflater 객체를 만들어 현재 화면내에 inflation 해줄것이다.

여기서 inflation은 현재 화면상에 메모리를 올린다는 뜻으로 비활성화 되어있는 부분화면(sub1.xml) 을 가져온다는 것이다.

 

이어서 Systemservice 는 앱이 동작할때 화면이 보이지 않더라도 Background에서 동작하고있는것을 알려준다.

그리고 inflate 함수를 이용하여 (sub1 화면을, linearlayout 에, attach 해줍니다.)

마지막으로 정상작동했는지 간단한 Toast 메시지를 띄워준다.

 

 

부분화면 레이아웃 추가 실행화면