一共是4个tabLayout滑动显示页面, 感觉还不错.
mainactivity
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import com.example.kevin.practicedial.Dial.CallFragment;
import com.example.kevin.practicedial.Contact.ContactFragment;
import com.example.kevin.practicedial.History.HisFragment;
import com.example.kevin.practicedial.Sms.SmsFragment;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private TabLayout tabLayout ;
private ViewPager viewPager ;
private ArrayList<Fragment> arrayList ;
private MainAdapter adapter ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main );
tabLayout = (TabLayout ) findViewById(R.id.tablayout );
viewPager = (ViewPager) findViewById(R.id.viewpager );
adapter =new MainAdapter(getSupportFragmentManager());
arrayList =new ArrayList<>();
arrayList .add(new CallFragment());
arrayList .add(new HisFragment());
arrayList .add(new ContactFragment());
arrayList .add(new SmsFragment());
adapter .setFragments(arrayList );
viewPager .setAdapter(adapter );
tabLayout .setupWithViewPager(viewPager );
tabLayout .getTabAt(0 ).setIcon(R.drawable.tab_selector_call );
tabLayout .getTabAt(1 ).setIcon(R.drawable.tab_selector_callrecord );
tabLayout .getTabAt(2 ).setIcon(R.drawable.tab_selector_contact );
tabLayout .getTabAt(3 ).setIcon(R.drawable.tab_selector_sms );
}
}
activity.xml文件
<? xml version= "1.0" encoding= "utf-8" ?>
<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"
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= "com.example.kevin.practicedial.MainActivity" >
<android.support.v4.view.ViewPager
android :id= "@+id/viewpager"
android :layout_width= "match_parent"
android :layout_height= "wrap_content"
android :layout_weight= "1" >
</android.support.v4.view.ViewPager >
<android.support.design.widget.TabLayout
android :id= "@+id/tablayout"
android :layout_width= "match_parent"
android :layout_gravity= "bottom"
android :layout_height= "wrap_content" >
</android.support.design.widget.TabLayout >
</LinearLayout >
MainActivityAdapter
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import java.util.ArrayList;
/**
* Created by kevin on 16/4/23.
*/
public class MainAdapter extends FragmentPagerAdapter{
private ArrayList<Fragment > fragments ;
public void setFragments(ArrayList<Fragment > fragments) {
this .fragments = fragments;
notifyDataSetChanged();
}
public MainAdapter(FragmentManager fm) {
super (fm);
}
@Override
public Fragment getItem(int position) {
return fragments ==null ?null :fragments .get(position);
}
@Override
public int getCount() {
return fragments !=null ?null :fragments .size();
}
}