프래그먼트를 사용할 때 플랫폼 API에서 제공되는 android.app.Fragment 대신 androidx.fragment 를 많이 사용한다.
프래그먼트도 Button 처럼 액티비티 화면을 구성하는 뷰이다. 다른 점은 액티비티처럼 동작한다는 것인데 이 말은 액티비티에서 작성할 수 있는 코드들은 프래그먼트에서도 사용 가능하다는 것이다.
프래그먼트는 태블릿과 같은 화면이 넓은 기기에서 개발 가능하도록 제공되었다.

넓은 화면에서 왼쪽 오른쪽의 화면 내용을 클래스로 분리해서 만들고 액티비티에서 두 클래스를 조합하는데 두 클래스가 액티비티 화면에 출력되어야 한다. 그렇기 때문에 두 클래스를 뷰 클래스로 만들어야 하는데 뷰 클래스는 액티비티가 아니기 때문에 액티비티에 작성된 모든 내용을 뷰 클래스에 담을 수 없다. 이때 프래그먼트를 사용한다.
앞서 말한 것처럼 프래그먼트는 액티비티처럼 사용할 수 있는 뷰 클래스이기 때문에 가능하다. 양쪽의 내용을 각각의 프래그먼트에 작성하고 액티비티에서 조합하면 액티비티의 코드 길이가 복잡하게 길어지지 않는다.

위 그림처럼 액티비티에서 왼쪽 프래그먼트를 먼저 출력한 후 항목을 선택하면 오른쪽 프래그먼트를 출력하는 형태가 일반적이다.
대표적인 프래그먼트 사용 예시는 탭과 뷰 페이저 화면이 있다.

프래그먼트는 뷰이지만 액티비티처럼 그 자체로는 화면에 아무것도 보이지 않는다. 그래서 구성할 레이아웃 XML 파일을 작성해야 한다.
프래그먼트는 Fragment 클래스를 상속받는다. 프래그먼트 클래스에 최소한으로 작성해야 하는 함수는 onCreateView() 이다. 자동 호출되며 반환한 View 객체가 화면에 출력된다.

<fragment> 태그를 사용<fragment> 의 name 속성에 프래그먼트 클래스를 지정activity_main.xml

코드에서 직접 프래그먼트 객체를 생성해 화면에 출력할 때도 있다.
프래그먼트 출력할 뷰 예시

FragmentManager 로 만든 FragmentTransaction 클래스의 함수를 사용해 동적 제어한다.

add(int containerViewId, Fragment fragment) : FragmentTransaction 객체의 함수로 새로운 프래그먼트를 화면에 추가int containerViewId : 프래그먼트가 출력될 뷰의 id값replace(int containerViewId, Fragment fragment) : 추가된 프래그먼트 대체remove(Fragment fragment) : 추가된 프래그먼트 제거commit() : 화면에 적용