[Android / Java]
Programmatic 하게 레이아웃을 만들기
* 목표 : 현재 보이는 뷰에 새로운 레이아웃을 직접 만들어 띄워 보자
//새 inflater 생성
LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(mActivity.LAYOUT_INFLATER_SERVICE);
//새 레이아웃 객체생성
LinearLayout linearLayout = (LinearLayout) inflater.inflate(R.layout.my_layout, null);
//레이아웃 배경 투명도 주기
int myColor = ContextCompat.getColor(mFragment.getContext(), R.color.o60);
linearLayout.setBackgroundColor(myColor);
//레이아웃 위에 겹치기
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams
(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
//기존레이아웃은 터치 안되게
linearLayout.setClickable(true);
linearLayout.setFocusable(true);
getActivity().addContentView(linearLayout, params);
웬만하면 Activity에서 코딩하지 않고 Fragment에서 작업하려고 한다. (Activity에서 작업하는 것이 더 쉽다!)
* LayoutInfalter는 XML로 정의된 레이아웃을 View로 실체화해주는 녀석이다.
불러올 XML 레이아웃 파일을 지정하여 LinearLayout 객체를 생성했다.
전 시간에 한 것처럼반투명한 상태로 레이아웃이 올라오도록 구현해 보았다.
또 바깥 레이아웃은 터치가 안되도록 포커스를 새 레이아웃에 줬다.
<참고 자료>
developer.android.com/reference/android/view/LayoutInflater
'Andorid' 카테고리의 다른 글
[Android / Java] Camera 촬영 및 내부/외부 저장소에 저장 (8) | 2020.12.06 |
---|---|
[Android / Java] 권한설정 (1) | 2020.12.06 |
[Android] Layout / View Group의 종류 1. Linear Layout (1) | 2020.12.02 |
[Android / Java] ViewHolder를 이용한 Custom Adapter 만들기 (2) | 2020.11.27 |
[Android] 배경(XML)에 투명도(Opacity) 적용 (4) | 2020.11.24 |