안드로이드 조각

이 기사를 이해하려면 프래그먼트가 재사용 가능한 구성 요소이며 UI 및 기타 기본 항목을 선언하는 레이아웃 파일이 있음을 알아야 합니다. 첫 번째 원칙부터 사용 방법을 보여 드리겠습니다.

조각 만들기



모든 프래그먼트에는 매개변수가 없는 공개 생성자가 있어야 합니다('인수 없는 공개 생성자'라고 하겠습니다). 프래그먼트 클래스 없이 프래그먼트 클래스를 만들면 런타임 예외가 발생합니다. Java는 클래스에 다른 생성자가 없는 경우 런타임에 인수가 없는 공용 생성자를 자동 생성하지만 클래스에 다른 생성자를 선언하는 경우 공용 인수가 없는 생성자를 직접 선언해야 합니다.

조각에는 onCreateView() 라는 메서드가 있습니다. 이 메서드는 프래그먼트의 레이아웃이 확장되는 위치입니다. 메서드 서명과 본문은 일반적으로 다음과 같습니다.

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.<layoutFileName>,container, false);
}


코드 고장
우리는 메서드가 세 가지 인수를 취하는 것을 볼 수 있습니다. 원하는 레이아웃을 구성 요소에 확장하거나 바인딩하는 데 사용되는 인스턴스LayoutInflater, 프래그먼트가 확장될 활동의 레이아웃 부분을 나타내는 인스턴스ViewGroupBundle 인스턴스 상태 저장용.

메서드 본문 내에서 LayoutInflater는 해당 inflate() 메서드를 호출합니다. inflate 메서드는 3개의 인수를 사용합니다.
  • 팽창시키려는 레이아웃
  • ViewGrouponCeateView()로 전달되었습니다.
  • attachToRoot라는 부울 값

  • 요약하면 LayoutInflater 객체는 View 객체를 만들고 onCreateView 메서드는 생성된 View를 반환합니다.

    활동에 조각 추가



    활동의 레이아웃에 프래그먼트를 추가하려면 활동의 xml 레이아웃 파일에 <fragment/> 태그를 추가합니다. 조각 태그의 이름 속성은 레이아웃과 연결하려는 조각 클래스의 정규화된 이름이어야 합니다.

    <fragment
        android:name="com.example.demoapp.ExampleFragment"
        android:layout_width="match_parent" />
    


    위의 코드는 패키지 이름이 com.example.demoapp인 앱을 빌드하고 있고 프래그먼트 클래스의 이름이 ExampleFragment.java 또는 ExampleFragment.kt라고 가정합니다.

    다른 일반 xml 속성을 <fragment/> 태그에 적용할 수 있습니다. 활동에 다른 뷰가 없으면 프래그먼트가 루트 레이아웃이 될 수 있습니다.

    좋은 웹페이지 즐겨찾기