FrameLayout의 경우 간단히 다음 예제를 하나 보면 이해가 될 것이다. ImageView와 Button객체를 가지고있는 FrameLayout을 실행하여 버튼이벤트에 ImageVIew의 Visibility를 VISIBLE 과 INVISABLE 설정하여 화면에 보이게/ 안보이게 하는 예제이다.
먼저 layout의 xml코드이다.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Push Button"/>
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon" />
</FrameLayout>
다음은 java 코드이다.
package com.example.FrameLayoutTest;
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
public class FrameLayoutTest extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
ImageView img=(ImageView)findViewById(R.id.img);
if(img.getVisibility() == View.VISIBLE) {
img.setVisibility(View.INVISIBLE);
} else {
img.setVisibility(View.VISIBLE);
}
}
});
}
}
실행결과
이런 방식으로 레이아웃 여러개를 표시할 수 있는 MultiPage 구성이 가능해 진다.
↗당연하지만 중요한 것 하나는 다른 레이아웃 또는 다른 xml에서 정의하는 객체라도 id값은 중복 되면 안된다는 것이다. 모든 ID값은 R.java에서 관리 하기 때문에 인식하지 못해서 에러가 나게된다.