本文章为Frament+ViewPager一起使用,可以实现滑屏,点击实现Frament效果。本文简单易懂,代码量少具体效果如图:
本文只有一个Activity,Fragment的个数随意,本文为两个,Fragment的布局里也是随意。
//创建Activity继承自FragmentActivity,程序的主界面
public class MainActivity extends FragmentActivity {
//框架private PagerSlidingTabStrip tab;
private ViewPager vp;
//集合用来存放每个Fragment
private ArrayList<Fragment> listFra;
//实例化第一个Fragment(其代码的具体内容在下面)
private OneFragment oneFragment
//实例化第二个Fragment(其代码的具体内容在下面);
private TwoFragment twoFragment;
//Fragment显示的标题以及Fragment的个数
private String[] viewTap={"国内新闻","娱乐新闻"};@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//主界面内容在下面
setContentView(R.layout.activity_main);vp=(ViewPager) findViewById(R.id.myvp);
//框架作为自定义控件需要加到主界面中,作为存放标题的地方
tab=(PagerSlidingTabStrip) findViewById(R.id.tabs);listFra=new ArrayList<Fragment>();
//实例化两个Fragment
oneFragment=new OneFragment();twoFragment=new TwoFragment();
listFra.add(oneFragment);
listFra.add(twoFragment);
//为Viewpager设置适配器
vp.setAdapter(myViewAdapter);tab.setViewPager(vp);
}
//Fragment和Viewpager的适配器为FragmentPagerAdapter
private FragmentPagerAdapter myViewAdapter =new FragmentPagerAdapter(getSupportFragmentManager()) {
//得到Fragment的标题
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return viewTap[position];
}
//得到Fragment的个数
@Overridepublic int getCount() {
// TODO Auto-generated method stub
return listFra.size();
}
//得到Fragment的每行内容
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
return listFra.get(arg0);
}
};
}
// MainActivity的主界面布局
<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"
xmlns:app="http://schemas.android.com/apk/res/com.example.tabfragment">
<android.support.v4.view.ViewPager
android:id="@+id/myvp"
android:layout_height="0px"
android:layout_weight="1"
android:layout_width="fill_parent">
</android.support.v4.view.ViewPager>
<!-- pstsIndicatorColor 指示器颜色 -->
<!-- pstsIndicatorColor 滑动条的颜色 -->
<!-- pstsUnderlineColor 滑动条所在的那个全宽线的颜色 -->
<!-- pstsDividerColor 每个标签的分割线的颜色 -->
<!-- pstsIndicatorHeightHeight 滑动条的高度 -->
<!-- pstsUnderlineHeight 滑动条所在的那个全宽线的高度 -->
<!-- pstsDividerPadding 分割线底部和顶部的填充宽度 -->
<!-- pstsTabPaddingLeftRight 每个标签左右填充宽度 -->
<!-- pstsTabBackground 每个标签的背景,应该是一个StateListDrawable -->
<!-- pstsShouldExpand 如果设置为true,每个标签是相同的控件,均匀平分整个屏幕,默认是false -->
<!-- pstsTextAllCaps 如果为true,所有标签都是大写字母,默认为true -->
<com.example.tabfragment.lib3.pagertab.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="fill_parent"
android:layout_height="60dp"
app:pstsDividerColor="#0000"
app:pstsIndicatorColor="#FF33B5E6"
app:pstsIndicatorHeight="2dp"
app:pstsTabPaddingLeftRight="14dp"/>
</LinearLayout>
//第一个Fragment的内容
public class OneFragment extends Fragment{
//创建Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//绑定第一个Fragment的界面
View v=inflater.inflate(R.layout.fra_one, container, false);
return v;
}
}
//第二个Fragment的内容
public class TwoFragment extends Fragment{
//创建Fragment
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
//绑定第一个Fragment的界面
View v=inflater.inflate(R.layout.fra_two, container, false);
return v;
}
}
//第一个Fragment 的绑定界面的内容
<?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:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fra1" />
</LinearLayout>
//第二个Fragment 的绑定界面的内容
<?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:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fra2" />
</LinearLayout>
//框架内容可以直接查看我的代码片。PagerSlidingTabStrip