Android 에서 TabLayout 는 ViewPager 와 결합 하여 페이지 전환 효 과 를 실현 합 니 다.
1.TabLayout 는 Android Design Support Library 공식 라 이브 러 리 의 컨트롤 이기 때문에 TabLayout 를 사용 할 때 이 라 이브 러 리 에 대한 의존 도 를 추가 해 야 합 니 다.
compile 'com.android.support:design:22.2.0'
2.다음은 TabLayout 와 ViewPager 가 함께 사용 하 는 레이아웃 입 니 다.
<?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"
tools:context="com.example.cxk.myapplication.MainActivity">
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="48dp"
android:background="#1FBCD2"
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"
app:tabIndicatorColor="@color/white"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/ripple_material_dark"
app:tabIndicatorHeight="2dp" />
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tablayout"
android:layout_weight="1" />
</RelativeLayout>
주:a.루트 레이아웃 에 xmlns:app="을 써 야 합 니 다.http://schemas.android.com/apk/res-auto"이 코드 는 레이아웃 에 Tablayot 의 일부 속성 을 설정 할 수 없습니다."
b.다음은 Tablayot 의 일반적인 속성 입 니 다.
app:tabIndicatorColor="@color/white"표시 기 색상
app:tabIndicator Height="2dp"표시 기의 광대 역
app:tabSelected TextColor="@color/white"선택 되 었 을 때 글꼴 색상
app:tabTextColor="@color/ripple_material_dark"선택 되 지 않 았 을 때 글꼴 색상
app:tabTextAppearance="@style/MyTabLayoutTextAppearance"글꼴 크기 변경(style.xml 아래 에 다음 코드 추가)
<style name="MyTabLayoutTextAppearance" parent="TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textSize">16sp</item>
</style>
3.다음은 TabLayout 와 ViewPager 가 함께 사용 하 는 JAVA 코드 입 니 다.
public class MainActivity extends FragmentActivity {
private TabLayout tablayout;
private ViewPager viewpager;
private List<Fragment> list;
private FragmentManager manager;
private FragmentTransaction transtion;
private MyFragmentPageAdapter adapter;
private List<String> titles;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// findID
tablayout = (TabLayout) this.findViewById(R.id.tablayout);
viewpager = (ViewPager) this.findViewById(R.id.viewpager);
// titles
titles = new ArrayList<String>();
titles.add(" ");
titles.add(" ");
// Fragment
list = new ArrayList<Fragment>();
Fragment1 f1 = new Fragment1();
Fragment2 f2 = new Fragment2();
list.add(f1);
list.add(f2);
// manager transtion viewpager
manager = getSupportFragmentManager();
adapter = new MyFragmentPageAdapter(manager);
transtion = manager.beginTransaction();
transtion.commit();
viewpager.setAdapter(adapter);
// tablayout.addTab Tab ,true
tablayout.addTab(tablayout.newTab().setText(titles.get(0)), true);
tablayout.addTab(tablayout.newTab().setText(titles.get(1)), false);
// Tablayout Viewpager
tablayout.setupWithViewPager(viewpager);
tablayout.setTabsFromPagerAdapter(adapter);
}
// ViewPager
class MyFragmentPageAdapter extends FragmentPagerAdapter {
public MyFragmentPageAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public android.support.v4.app.Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return list.get(arg0);
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
super.destroyItem(container, position, object);
}
}
}
주:1.getSupportManager 가 이 방법 을 사용 하려 면 Fragment Activity 를 계승 해 야 합 니 다.
2.정 의 된 새 어댑터 는 getpager Title 을 다시 써 야 합 니 다.그렇지 않 으 면 제목 이 표시 되 지 않 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.