안드로이드/레이아웃(Layout)
FrameLayout
kitty_cat
2023. 3. 8. 00:09
가시성과 중첩
프레임 레이아웃은 뷰를 하나 이상 추가할 경우, 추가된 순서로 차곡차곡 쌓임
가만 먼저 추가한 뷰가 가장 아래쪽에 쌓이고 그다음에 추가한 뷰는 그 위에 쌓여서 가장 나중에 쌓인 뷰만 보이게 됨.
가장 위에 있는 뷰를 보이지 않게 하면 그다음 뷰가 보이게 하는 속성
-> 여러 개의 뷰를 서로 전환할 때 사용
뷰를 추가할 때는 디자인 화면서에서 추가할 수도 있고 자바 소스 코드에서 addView 메서드 사용하여 추가
가시성 속성을 사용해서 특정 뷰를 보이거나 보이지 않게 하면 화면에 보이는 뷰가 전환되는 효과도 만들 수 있음.
visibility 속성 : visible, invisigle, gone
(자바 소스 코드에서 설정하고 싶ㄷ파면 setVisibility 메서드 사용)
package org.techtown.sampleframelayout;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
ImageView imageView;
ImageView imageView2;
int imageIndex = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
imageView2 = findViewById(R.id.imageView2);
}
public void onButtonClicked(View v) {
changeImage();
}
private void changeImage() {
if (imageIndex == 0 ) {
imageView.setVisibility((View.VISIBLE));
imageView2.setVisibility(View.INVISIBLE);
imageIndex = 1;
} else if (imageIndex == 1) {
imageView.setVisibility(View.INVISIBLE);
imageView2.setVisibility(View.VISIBLE);
imageIndex = 0;
}
}
}