본문 바로가기

코딩/Android

Fragment 로 activity 화면에 보여주기

메인 액티비티를 하나 생성.

 

또한 액티비티 위에 띄워줄 프래그먼트 생성

 

 

app/res/layout 에서 우클릭 후 new -> layout resource file 클릭후 프래그먼트 생성

 

 

 

fragment.java파일 생성 후 코드 입력

```java
package org.techtown.tab;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

public class Fragment1 extends Fragment {
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment1, container, false);
    }
}
```

여기서 inflater란? xml로 정의된 view를 실제 객체화 시키는 용도이다.

ex) 약간 복잡한 구조의 view를 java 코드로 만들게 되면 생성하고 속성을 넣느라 코드가 길어질 수 있는데, 그걸 미리 xml로 만들어 놓고 java코드에서는 inflater를 활용하여 바로 view를 생성할 수 있다.

 

 

 

메인 엑티비티.java 에서는

```java
package org.techtown.tab;

import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Bundle;

import com.google.android.material.tabs.TabLayout;

public class MainActivity extends AppCompatActivity {

    Fragment1 fragment1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        fragment1 = new Fragment1();
				getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment1).commit();
                

    }
}
```

로 프래그먼트를 메인엑티비티에 띄울 수 있다.