하고재비
[Android]탭레이아웃 Tab Layout 본문
Activity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import android.support.design.widget.TabLayout; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class Insert_Product extends AppCompatActivity{ TabLayout sliding_tab; ViewPager pager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_insert__product); sliding_tab = (TabLayout) findViewById(R.id.sliding_tabs); pager = (ViewPager) findViewById(R.id.viewPager); pager.setAdapter(new FragmentAdpater_APPmanagment(getSupportFragmentManager())); pager.setOffscreenPageLimit(2); // 안보이는 페이지 로딩해 놓을 갯수 sliding_tab.addTab(sliding_tab.newTab().setText("상품 등록"), 0, true); // 페이지 등록 sliding_tab.addTab(sliding_tab.newTab().setText("상품 수정"), 1); sliding_tab.addOnTabSelectedListener(pagerListener); pager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(sliding_tab)); } TabLayout.OnTabSelectedListener pagerListener = new TabLayout.OnTabSelectedListener() { @Override public void onTabSelected(TabLayout.Tab tab) { pager.setCurrentItem(tab.getPosition()); // 슬라이딩이 아니라 위에 페이지를 선택했을 때도 페이지 이동 가능하게. } @Override public void onTabUnselected(TabLayout.Tab tab) { } @Override public void onTabReselected(TabLayout.Tab tab) { } }; } | cs |
Fragment_1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by ***** on 2018-02-11. */ public class Fragment_Insert extends Fragment{ @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_insert, container, false); return view; } } | cs |
Adapter
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import android.support.v4.app.FragmentManager; import android.support.v4.view.PagerAdapter; /** * Created by 3703e on 2018-02-11. */ import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; public class FragmentAdpater_APPmanagment extends FragmentStatePagerAdapter { public FragmentAdpater_APPmanagment(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { switch (position) { case 0 : // 여기 서의 숫자와 MainActivity.java에서 addTab 탭 번호가 매칭이되느 겁니다. return new Fragment_Insert(); case 1 : return new Fragment_Update(); } return null; } @Override public int getCount() { return 2; // 원하는 페이지 수 } } | cs |
xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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.support.design.widget.TabLayout android:id="@+id/sliding_tabs" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffffff" app:tabGravity="fill" app:tabIndicatorColor="@color/colorPrimary" app:tabMode="fixed" app:tabSelectedTextColor="@color/colorPrimary" app:tabTextColor="#c9c9c9"> </android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> </android.support.v4.view.ViewPager> </RelativeLayout> | cs |
bulid.gradle(app) 내 dependencies에 추가 (뒤 숫자는 sdk 버전과 매칭)
compile 'com.android.support:design:26.1.0''Android' 카테고리의 다른 글
| [Android] JSON을 GSON으로 파싱하기 (0) | 2018.02.14 |
|---|---|
| [Android] Json 파싱하기 (0) | 2018.02.14 |
| [Android] 클래스 이름 불러와 인텐트로 바로써먹어보자 (0) | 2018.01.22 |
| [Android] 현재 실행중인 액티비티 가져오기 (0) | 2018.01.19 |
| [Android] Recycler View, StaggeredGrid (0) | 2018.01.17 |
Comments