[ Android ( Oreo ) ]

1. fragment 생성

ViewPager 에서 사용할 만큼 fragment 를 만든다.

- 여기선 3개를 만들어본다. 


 
1.  SingleTon 으로 사용한다.
   -  Adapter 의 getView 에서 fragment 를 호출해야 하는데
      new 생성자로 호출할 경우, 매번 새로 생성하기 때문에 메모리 낭비이다.
 
2.  Fragment ( - v4.app - ) 를 상속받아 사용
 
3.  onCreate 에서 사용할 layout 을 inflate 시키며 return 해준다.
 

 
첫번째 fragment
package dmstlr90.co.kr.a201806c.d0621.ViewPagerPractice.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import dmstlr90.co.kr.a201806c.R;

public class FragmentA extends Fragment {

    private static FragmentA curr = null;

    public static FragmentA getInstance(){
        if(curr == null){
            curr = new FragmentA();
        }
        return curr;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_1, container, false);
        return view;
    }

}

 

두번째 fragment ( 이름과 사용 레이아웃 외엔 다른게 없다. ) 

package dmstlr90.co.kr.a201806c.d0621.ViewPagerPractice.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import dmstlr90.co.kr.a201806c.R;

public class FragmentB extends Fragment {

    private static FragmentB curr = null;

    public static FragmentB getInstance(){
        if(curr == null){
            curr = new FragmentB();
        }
        return curr;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_2, container, false);
        return view;
    }

}

 

세번째 fragment ( 역시 이름과 사용 레이아웃 외엔 다른게 없다. ) 

package dmstlr90.co.kr.a201806c.d0621.ViewPagerPractice.fragment;

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import dmstlr90.co.kr.a201806c.R;

public class FragmentC extends Fragment {

    private static FragmentC curr = null;

    public static FragmentC getInstance(){
        if(curr == null){
            curr = new FragmentC();
        }
        return curr;
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        View view = inflater.inflate(R.layout.fragment_3, container, false);
        return view;
    }

}

 

layout ( fragment_1, fragment_2, fragment_3 ) 은

액티비티의 layout 에 생성할 

<android.support.v4.view.ViewPager></~> 

의 내부에 보여지게 될 레이아웃이다.

- 고려하여 디자인한다.

댓글

댓글 본문
작성자
비밀번호
버전 관리
gamza
현재 버전
선택 버전
graphittie 자세히 보기