fragment 공부 기록 1

8321 단어 안드로이드조각

정적으로 Fragment를 호출한다



fragment가 진짜로 모르기 때문에 mainActivity(녹색)안에 fragment(파랑)를 호출해 표시시키는 것으로부터 시험해 보았다.


마이너 c 치비 ty. 자바



mainActivity.java로하는 것은 activity_main.xml을 표시하기 만하면됩니다.

mainActivity.java

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}


activity_main.xml


  • main activity에서 setContentView로 호출하는 레이아웃
  • 여기에서는 constraint layout 로 작성 (어떤 레이아웃을 사용해도 괜찮습니다)
  • fragment 태그를 사용하여 중앙에 fragment를 배치
  • 포인트는 android:name 속성과 tools:layout 속성
  • android:name 속성은 작성된 클래스를 인스턴스화한다. 즉, 이 경우에는 sampleApp 프로젝트의 sampleFragment 클래스를 인스턴스화한다. sampleFragment 클래스에서는 프래그먼트의 레이아웃을 생성하므로, 프래그먼트가 표시되게 된다.
  • tools:layout 속성을 사용하면 레이아웃 미리보기에서 조각에 그려지는 레이아웃을 선언할 수 있습니다. 이것이 없어도 코드는 실행되어 앱 내에서 조각이 표시되지만, 있으면 미리보기 안에 그려지므로 레이아웃 설정이 쉽다.


  • activity_main.xml
    
    <androidx.constraintlayout.widget.ConstraintLayout 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:background="#8BC34A"
        tools:context=".MainActivity">
    
        <fragment
            android:id="@+id/fragment"
    
            android:name="com.example.sampleapp.SampleFragment"
            tools:layout="@layout/fragment_sample"
    
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="100dp"
            android:layout_marginEnd="16dp"
            android:layout_marginBottom="100dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
             />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    

    참고



    ↓tools:layout 속성이 있을 때


    ↓tools:layout 속성이 없을 때


    MP ㎇ F 등 g면 t. 자바



    OnCreateView() 로 건네받은 layout inflater 에 fragment_sample.xml 의 레이아웃을 삽입해 돌려준다.

    SampleFragment.java
    
    public class SampleFragment extends Fragment {
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            // Inflate the layout for this fragment
            //引数で渡されるLayoutInflaterにFragmentのレイアウトをinflate(挿入)して返す
            return inflater.inflate(R.layout.fragment_sample, container, false);
        }
    }
    
    

    fragment_sample.xml



    constraintLayout (파란색) 안에 textView를 배치.

    fragment_sample.xml
    <androidx.constraintlayout.widget.ConstraintLayout 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:background="#00BCD4"
        tools:context=".SampleFragment">
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_fragment"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    

    ↓fragment

    좋은 웹페이지 즐겨찾기