其实这里也是介绍android5.0的design库的一些控件的使用
好了下面不多说了,这个就是个顶部的滑动tab
首先
添加依赖
compile 'com.android.support:design:23.2.0'
下面简单介绍下
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tab_taskfragment_title"
app:tabIndicatorColor="@color/colorDiGreen"
app:tabSelectedTextColor="@color/colorDiGreen"
app:tabTextColor="@color/normal_text_color"
>
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/viewpage_taskfragment"></android.support.v4.view.ViewPager>```
稍作解释
app:tabIndicatorColor="@color/white" // 下方滚动的下划线颜色
app:tabSelectedTextColor="@color/gray" // tab被选中后,文字的颜色
app:tabTextColor="@color/white" // tab默认的文字颜色
我们需要两个集合
//创建一个标题集合
List<String> title_list=new ArrayList<String>();
//fragment集合
List<BaseFragment>fragment_list=new ArrayList<BaseFragment>();
然后我们需要一个适配器来将二者结合起来需要继承FragmentPagerAdapter
package com.yundong.gongchengji.adapter;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import com.yundong.gongchengji.base.BaseFragment;
import java.util.List;
/**
*
* 该类用于 tablayout
* Created by Administrator on 2016/10/20.
*/
public class MyPagerAdapter extends FragmentPagerAdapter {
private List<String> mTitleList;
private List<BaseFragment> views;
//通过构造方法传值
public MyPagerAdapter(FragmentManager fm, List<String> mTitleList, List<BaseFragment> views) {
super(fm);
this.mTitleList=mTitleList;
this.views=views;
}
@Override
public Fragment getItem(int position) {
return views.get(position);//获取当前的fragment
}
@Override
public int getCount() {
return views.size();
}
@Override
public CharSequence getPageTitle(int position) {
return mTitleList.get(position); //获取tab标题
}
}
ok就这样了
下面给出全部的代码
public class TaskHallActivity extends BaseActivity {
private TabLayout tabTaskfragmentTitle;
private ViewPager viewpageTaskfragment;
//创建一个标题集合
List<String> title_list=new ArrayList<String>();
//fragment集合
List<BaseFragment>fragment_list=new ArrayList<BaseFragment>();
@Override
public int getContentViewId() {
return R.layout.activity_task_hall;
}
@Override
protected void initView(Bundle savedInstanceState) {
setLeft();
setTitle("任务大厅");
tabTaskfragmentTitle= (TabLayout) findViewById(R.id.tab_taskfragment_title);
viewpageTaskfragment= (ViewPager) findViewById(R.id.viewpage_taskfragment);
}
/**
* 初始化变量
*/
@Override
protected void initVariable() {
title_list.add("任务详情");
title_list.add("任务互动");
fragment_list.add(new TaskDetailFragment());
fragment_list.add(new TaskDetailFragment());
}
/**
* 处理业务逻辑,状态恢复等操作
*/
@Override
protected void processLogic(Bundle savedInstanceState) {
tabTaskfragmentTitle.setTabMode(TabLayout.MODE_FIXED);
tabTaskfragmentTitle.addTab(tabTaskfragmentTitle.newTab().setText(title_list.get(0)));
tabTaskfragmentTitle.addTab(tabTaskfragmentTitle.newTab().setText(title_list.get(1)));
viewpageTaskfragment.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public Fragment getItem(int position) {
return fragment_list.get(position);
}
@Override
public int getCount() {
return fragment_list.size();
}
});
MyPagerAdapter adapter=new MyPagerAdapter(getSupportFragmentManager(),title_list,fragment_list);
viewpageTaskfragment.setAdapter(adapter);
tabTaskfragmentTitle.setupWithViewPager(viewpageTaskfragment);
}
}