본문 바로가기
개발/Adroid

[android] PagerSlidingTabStrip

by KEI NETWORK 2019. 10. 21.
728x90

For a working implementation of this project see the sample/ folder.

  1. Include the library as local library project or add the dependency in your build.gradle.

    dependencies { compile 'com.astuetz:pagerslidingtabstrip:1.0.1' }

  2. Include the PagerSlidingTabStrip widget in your layout. This should usually be placed above the ViewPager it represents.

    <com.astuetz.PagerSlidingTabStrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip" />

  3. In your onCreate method (or onCreateView for a fragment), bind the widget to the ViewPager.

    // Initialize the ViewPager and set an adapter ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new TestAdapter(getSupportFragmentManager())); // Bind the tabs to the ViewPager PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); tabs.setViewPager(pager);
  4. (Optional) If you use an OnPageChangeListener with your view pager you should set it in the widget rather than on the pager directly.

    // continued from above tabs.setOnPageChangeListener(mPageChangeListener);

 

내 응용 프로그램에서이 라이브러리를 사용하려고합니다 : https://github.com/astuetz/PagerSlidingTabStrip

문서를 읽었지만 아무것도 이해하지 못했습니다. 두 개의 조각이있어서 앱에 두 개의 탭을 배치하고 싶습니다. 뷰 페이지 xml을 어디에 넣어야합니까?

이 코드 블록은 어디에 두어야합니까?

// Initialize the ViewPager and set an adapter ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new TestAdapter(getSupportFragmentManager())); // Bind the tabs to the ViewPager PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); tabs.setViewPager(pager);

주요 활동이나 모든 파편과 주요 활동? (나는 viewpager xml에 대해 동일한 질문을 가지고있다.) 아무도 내 앱 단계로 이것을 어떻게 구현할 수 있을까?

추신 : https://github.com/astuetz/PagerSlidingTabStrip/tree/master/sample 이것은 예제 코드입니다.

우수 답변

step by step

당신이 묻는대로 나는 그것을 단지 두 개의 탭으로 만듭니다!

0) 빌드 경로에 라이브러리 추가

1) 두 조각 만들기

public class FragmentA extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_a,container,false); } }

public class FragmentB extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_b,container,false); } }

예를 들어 그들의 레이아웃은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFFF00"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="This is Fragment A" android:id="@+id/textView" android:gravity="center" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentBottom="true" /> </RelativeLayout>

2) MainActivity 레이아웃 생성 :

<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" > <com.astuetz.PagerSlidingTabStrip android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="48dip" /> <android.support.v4.view.ViewPager android:id="@+id/pager" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/tabs" tools:context=".MainActivity" /> </RelativeLayout>

3) 뷰 페이지 어댑터 만들기

public class MyPagerAdapter extends FragmentPagerAdapter { public MyPagerAdapter(FragmentManager fm) { super(fm); } @Override public CharSequence getPageTitle(int position) { return (position == 0)? "Tab 1" : "Tab2" ; } @Override public int getCount() { return 2; } @Override public Fragment getItem(int position) { return (position == 0)? new FragmentA() : new FragmentB() ; } }

3) MainActivity에서 PagerSlidingTabStrip에 대한 viewpager 및 viewpager에 어댑터 할당

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(new MyAdapter(getSupportFragmentManager())); // Bind the tabs to the ViewPager PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs); tabs.setViewPager(pager); }

4) 실행

728x90

댓글