하고재비

[Android]탭레이아웃 Tab Layout 본문

Android

[Android]탭레이아웃 Tab Layout

DeadDE 2018. 2. 11. 23:07

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("상품 등록"), 0true); // 페이지 등록
        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'



Comments