-->

[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

 

LayoutInflater  |  Android 개발자  |  Android Developers

 

developer.android.com

 

+ Recent posts