안드로이드 앱 화면의 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 메시지를 띄워준다.