1.首先要導入2個函式庫到Gradle
- compile 'com.android.support:appcompat-v7:25.0.0'
- compile 'com.android.support:design:25.0.0'
2.在xml掛上TabLayout和ViewPager
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="tw.com.hjchen.tablayout.MainActivity">
<android.support.design.widget.TabLayout
android:id="@+id/pager_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="fixed"
app:tabGravity="fill"/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_below="@id/pager_tabs"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
3.建立一個ViewPager的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/textView_item_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="MyPage:"/>
<TextView
android:id="@+id/textView_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="80sp" />
</LinearLayout>
4.MainActivity.java
import android.support.design.widget.TabLayout;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TabLayout mTabs;
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabs = (android.support.design.widget.TabLayout) findViewById(R.id.pager_tabs);
mTabs.addTab(mTabs.newTab().setText("Game"));
mTabs.addTab(mTabs.newTab().setText("Music"));
mTabs.addTab(mTabs.newTab().setText("Contact"));
mViewPager = (ViewPager) findViewById(R.id.viewpager);
mViewPager.setAdapter(new MyPagerAdapter());
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabs));
mTabs.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
class MyPagerAdapter extends PagerAdapter {
private int pageCount = 3;
@Override
public int getCount() {
return pageCount;
}
@Override
public boolean isViewFromObject(View view, Object obj) {
return obj == view;
}
@Override
public CharSequence getPageTitle(int position) {
return "MyPage " + (position + 1);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view = getLayoutInflater().inflate(R.layout.my_pager_items, container, false);
container.addView(view);
TextView title = (TextView) view.findViewById(R.id.textView_item_title);
title.setText("" + (position + 1));
return view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}
沒有留言:
張貼留言