[안드로이드] 탭 레이아웃 - 작성중

2021. 12. 7. 11:39앱개발

1. activity_main.xml

  - Layout : LinearLayout

  - orientaion : vertical

2. Containers > TabLayout을 붙여넣는다

  - height : wrap_content로 변경

  - 3개의 탭이 기본적으로 생성되어 있는데 각각의 텍스트를 '즐겨찾기', '노선', '정류장'으로 바꾼다

* 탭 레이아웃이 위로 올려붙는다

3. 탭 레이아웃 하단에는 FrameLayout을 붙인다

  - id : container

> 지금까지의 화면은 다음과 같이 표현된다

 

  4. Fragment생성

    1) Bookmark 

2) 경로

3) StationFragment 

* 탭 관련 초기 코드

더보기
	//선언
    enum eFragment{ Bookmark, Route, Station, FragMax};
    Fragment [] fragments = new Fragment[3];
    public int tabIndex = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
	//.....

        tabIndex = eFragment.Bookmark.ordinal();
        fragments[eFragment.Bookmark.ordinal()] = new BookmarkFragment();
        fragments[eFragment.Route.ordinal()]    = new RouteFragment();
        fragments[eFragment.Station.ordinal()]  = new StationFragment();

        getSupportFragmentManager().beginTransaction().replace(R.id.container, fragments[tabIndex]).commit();

        TabLayout tabs = findViewById(R.id.tabs);
        tabs.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                int idx = tabs.getSelectedTabPosition();
                getSupportFragmentManager().beginTransaction().replace(R.id.container, fragments[idx]).commit();
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {

            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });
	}

여기까지 하면 기본적으로 탭이 보이고 탭으로 Fragment가 바뀌는 것은 볼수 있다