1. id 속성
필수 속성은 아니지만, 필요할 때 추가 가능
XML에 등록하여 자동으로 생성된 객체를 자바 코드에서 식별할 필요가 있을 때 id 속성 사용
XML 파일로 작성한다고 가정, 뷰 코드를 자바 코드로 직접 생성한 게 아니기 때문에 id가 없으면 객체명을 알 수 없음
<TextView>
android:id="@+id/myText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello"/>
이렇게 지정한 id 값은 해당 앱의 R.java 파일에 등록된다.
id 값도 R.java 파일에 등록됨
setContentView() 함수를 호출하면, 레이아웃 XML 파일 내용이 화면에 출력되고, XML에 정의한 객체가 자동으로 생성된다.
TextView myTextView = findViewById(R.id.myText);
이렇게 사용이 가능
2. layout_width, layout_height 속성
뷰를 화면에 표시할 때, 반드시 뷰의 크기를 지정해야 한다.
선언하지 않으면 빌드할 때 에러가 발생한다.
크기 속성값
- match_parent / fill_parent
해당 뷰의 크기를 부모 계층의 뷰가 지정한 크기에 꽉 들어차게 자동으로 결정
뷰의 계층구조는 다음 포스트에 있음
- wrap_content
문자열 폰트 크기의 영향을 받고, 적절한 크기를 계산해서 결정하라는 의미
- 100px
수치로 뷰의 크기를 직접 설정할 수도 있다.
수치로 직접 지정하기 보다는 다양한 스마트폰 크기에 대응하기 위해서 match_parent, wrap_content 를 주로 사용한다.
3. margin, padding 속성
단일 방향 margin 속성
- layout_marginLeft
- layout_marginRight
- layout_marginTop
- layout_marginBottom
단일 방향 padding 속성
- paddingLeft
- paddingRight
- paddingTop
- paddingBottom
4. clickable 속성
버튼은 clickable 속성을 지정하지 않아도 기본 클릭이나 롱클릭 이벤트를 처리할 수 있음.
TextView , ImageView 는 clickable 지정해야 반응이 됨.
이미지를 이미지뷰로 출력하고, clickable 속성으로 클릭 이벤트를 발생시켜 버튼 효과를 낼 때 유용하게 사용
5. visibility 속성
기본값은 true
안보이게 하려면
android:visibility="gone"
android:visibility="invisible"
이 둘의 차이점은
gone : 크기 확보하지 않는 것
invisible : 크기 확보하는 것
액티비티 화면을 XML 로 구성할 때 초기에 특정 뷰를 화면에 출력하지 않으려는 용도로 사용.
특정 순간에 동적으로 화면 출력 가능
setVisibility() 함수를 이용하여 뷰의 표시 상태를 조정할 수 있다.
targetBtn.setVisibility(View.VISIBLE);
targetBtn.setVisibility(View.INVISIBLE);
이벤트 프로그램을 통한 동적 처리 예제
trueBtn.setOnClickListener(this);
@Override
public void onClick(View v) {
if(v==trueBtn) {
targetTextView.setVisibility(View.VISIBLE);
}else if(v==falseBtn) {
targetTextView.setVisibility(View.INVISIBLE);
}
}
'안드로이드' 카테고리의 다른 글
빌더 패턴 (0) | 2020.08.27 |
---|---|
뷰 아키텍처 (0) | 2020.08.27 |
액티비티 - 뷰 구조 (0) | 2020.08.27 |
MainActivity.java 기본 중 기본 (0) | 2020.08.27 |
AndroidManifest.xml (0) | 2020.08.27 |