투케이2K

407. (android/java) LayoutInflater 사용해 자식 레이아웃 뷰 화면을 부모 레이아웃에 올림 처리 수행 실시 본문

Android

407. (android/java) LayoutInflater 사용해 자식 레이아웃 뷰 화면을 부모 레이아웃에 올림 처리 수행 실시

투케이2K 2022. 11. 6. 22:12

[개발 환경 설정]

개발 툴 : AndroidStudio

 

[Java : 소스 코드]

		// ==========================================

		// [로직 처리 실시]
		try {

			// [1] : activity_main.xml 에 선언된 레이아웃 지정
			LinearLayout layout = (LinearLayout)findViewById(R.id.header_linear);


			// [2] : layoutInflater 선언 및 메인 레이아웃에 개별 레이아웃 올림
			LayoutInflater layoutInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			layoutInflater.inflate(R.layout.header_inflate, layout, true);


			// [3] : activity_main.xml 레이아웃에 올려진 개별 레이아웃 이벤트 설정 실시
			Button headerButton = (Button)layout.findViewById(R.id.headerButton);
			headerButton.setOnClickListener(new View.OnClickListener() {
				@Override
				public void onClick(View v) {
					Log.i("---","---");
					Log.d("//===========//","================================================");
					Log.i("","\n"+"[Test_Java > onCreate() 메소드 : headerButton 클릭 이벤트 발생]");
					Log.d("//===========//","================================================");
					Log.i("---","---");
				}
			});

		}
		catch (Exception e){
			e.printStackTrace();
		}

		// ==========================================
 

[activity_main.xml : 소스 코드]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:focusable="true"
    android:focusableInTouchMode="true">

    <LinearLayout
        android:id="@+id/header_linear"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="vertical"
        android:background="#ff00ff">
    </LinearLayout>

</LinearLayout>
 

[header_inflate.xml : 소스 코드]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="0dp">

    <Button
        android:id="@+id/headerButton"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="헤더 버튼"
        android:textStyle="bold"
        android:textSize="30dp"
        android:background="#000"
        android:textColor="#fff"/>

</LinearLayout>
 

[결과 출력]

 

 
반응형
Comments