其實這裡也是介紹android5.0的design庫的一些控件的使用
好了下面不多說了,這個就是個頂部的滑動tab
首先
添加依賴
下面簡單介紹下
<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()));
tabTaskfragmentTitle.addTab(tabTaskfragmentTitle.newTab().setText(title_list.get()));
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);
}
}