Frament+ViewPager一起使用

本文章为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的个数

@Override
public 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



  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值