Android 앱 에 서 는 ViewPager 와 ViewPager 표시 기 를 사용 하여 Tab 탭 을 만 듭 니 다.
우 리 는 먼저 Github 에 가서 이 라 이브 러 리 를 다운로드 하고 주 소 를 다운로드 해 야 한다.https://github.com/JakeWharton/Android-ViewPagerIndicator다운로드 한 후에 예 를 들 어 우리 가 어떤 효 과 를 필요 로 하 는 지 보고 이 를 바탕 으로 우리 가 원 하 는 효과 로 바 꿀 수 있 습 니 다.
1.오픈 소스 프레임 워 크 사용 방법
STEP 1:improt library 프로젝트
두 번 째 단계:library 를 우리 가 새로 만 든 항목 에 가 져 옵 니 다.
Github 에서 이 zip 패 키 지 를 다운로드 하면 라 이브 러 리 파일 이 하나 있 습 니 다.라 이브 러 리 프로젝트 이 고 또 하나의 sample 이 있 습 니 다.작가 가 제공 하 는 예 입 니 다.(sample 프로젝트 import 를 작성 자가 제공 하 는 다양한 스타일 의 Indicator 를 볼 수 있 습 니 다.참고 로)작가 의 예 를 바탕 으로 자체 적 으로 스타일 을 개발 하려 면 library 프로젝트 import 를 Eclipse(library 는 라 이브 러 리 프로젝트 이 므 로 우 리 는 이 를 우리 프로젝트 의 의존 라 이브 러 리 로 사용 해 야 합 니 다).그리고 새 프로젝트 를 만 듭 니 다.새 프로젝트 libs 디 렉 터 리 아래 에 android-support-v4.jar 가 있 습 니 다.이것 은 삭제 해 야 합 니 다.ViewPageIndicator 에 이 라 이브 러 리 가 있 기 때문에 우리 프로젝트 에 두 개의 android-support-v4.jar 를 허용 하지 않 습 니 다.우리 프로젝트 를 삭제 하지 않 으 면 컴 파일 할 수 없습니다.오른쪽 키 항목―Properties―Android 옵션 카드―Add―library 라 이브 러 리 프로젝트―OK 를 선택 하여 가 져 왔 습 니 다.
2.MainActivity 레이아웃
레이아웃 에 하나의 ViewPager,하나의 ViewPager Indicator 만 있 습 니 다.(이 예 는 ViewPager Indicator:TabPager Indicator 를 사용 합 니 다)
ViewPager 의 위 나 아래 에 가 까 워 야 하 며,어쨌든 함께 붙 어야 합 니 다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/base_action_bar_bg" >
</com.viewpagerindicator.TabPageIndicator>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" >
</android.support.v4.view.ViewPager>
</LinearLayout>
3.MainActivity 코드STEP 1:ViewPager 를 예화 하여 ViewPager 에 Adapter 를 설정 합 니 다.
STEP 2:TabPageIndicator,TabPageIndicator 와 ViewPager 를 예화 합 니 다.
STEP 3:Indicator 에 OnPager Change Listner 모니터 설정
4 단계:어댑터 정의(FragmentPagerAdapter 계승)
먼저 ViewPager 를 예화 한 다음 에 TabPageIndicator 를 예화 한 다음 에 TabPageIndicator 와 ViewPager 의 연결 을 설정 합 니 다.바로 TabPageIndicator 의 setViewPager(ViewPager view)방법 을 호출 하 는 것 입 니 다.이렇게 하면 위의 Tab 을 클릭 하고 아래 의 ViewPager 전환 을 실현 합 니 다.View Pager 를 미 끄 러 뜨리 고 위의 Tab 을 따라 전환 합 니 다.
ViewPager 의 모든 아 이 템 은 Fragment 를 사용 합 니 다.Fragment 를 사용 하면 레이아웃 을 더욱 유연 하 게 할 수 있 습 니 다.Fragment 를 많이 사용 하 는 것 을 권장 합 니 다.
감청 을 설정 할 때 는 Indicator 가 제공 하 는 OnPager Change Listener 방법 을 사용 해 야 합 니 다.
public class MainActivity extends FragmentActivity {
/**
* Tab
*/
private static final String[] TITLE = new String[] { " ", " ", " ", " ",
" ", " ", " ", " " };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// ViewPager, ViewPager Adapter
ViewPager pager = (ViewPager)findViewById(R.id.pager);
FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());
pager.setAdapter(adapter);
// TabPageIndicator, ViewPager ( )
TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
indicator.setViewPager(pager);
// ViewPager Fragment ( ), OnPageChangeListener , ViewPager , Indicator ,
indicator.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show();
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
/**
* ViewPager
*/
class TabPageIndicatorAdapter extends FragmentPagerAdapter {
public TabPageIndicatorAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// Fragment ViewPager item ,
Fragment fragment = new ItemFragment();
Bundle args = new Bundle();
args.putString("arg", TITLE[position]);
fragment.setArguments(args);
return fragment;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLE[position % TITLE.length];
}
@Override
public int getCount() {
return TITLE.length;
}
}
}
4.ViewPager 의 모든 Item 코드 를 정의 합 니 다(각각 Fragment)이 예 는 하나의 Fragment 만 정의 하고 R.layot.fragment 는 하나의 TextView 만 정의 합 니 다.이 Fragment 코드 에 서 는 Bundle 을 통 해 Key-value 데 이 터 를 전달 하고 내용 은 문자열 하나 입 니 다.실제 개발 할 때 각 ViewPager 의 item 에 대해 서로 다른 Fragment 의 레이아웃,코드 내용 등 을 디자인 해 야 합 니 다.이 코드 는 시범 만 한다.
public class ItemFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// , find TextView
View contextView = inflater.inflate(R.layout.fragment_item, container, false);
TextView mTextView = (TextView) contextView.findViewById(R.id.textview);
// Activity
Bundle mBundle = getArguments();
String title = mBundle.getString("arg");
mTextView.setText(title);
return contextView;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
5.Indicator 스타일 수정1 단계:values/styles 에
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.