您的位置:首页 > 其它

Inflater&TabLayout&ViewPager

2015-09-15 01:25 351 查看
package com.pcs.learn.Main;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.TabLayout;
import android.support.v4.app.FragmentManager;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.pcs.learn.Base.BaseFragment;
import com.pcs.learn.R;
import com.pcs.learn.View.PullableView.PullToRefreshLayout;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import butterknife.Bind;
import butterknife.ButterKnife;

/**
* Created by chaosi on 2015/9/12.
*/
public class GroupFragment extends BaseFragment {
@Bind(R.id.viewPager)  ViewPager viewPager;
@Bind(R.id.tabLayout)  TabLayout tabLayout;
public View mView;
public Context mContext;
public FragmentManager mFragmentManager;
public List<View> mViewList = new ArrayList<>();
public List<String> mTitleList = new ArrayList<>();
public ListView talkListView;
public ListView groupListView;

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.init();
mContext= getActivity();
mFragmentManager= getActivity().getSupportFragmentManager();
mView= inflater.inflate(R.layout.fragment_group, container, false);
ButterKnife.bind(this, mView);

mTitleList.add("会话");
mTitleList.add("小组");
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.addTab(tabLayout.newTab().setText(mTitleList.get(0)));
tabLayout.addTab(tabLayout.newTab().setText(mTitleList.get(1)));

LayoutInflater mInflater = LayoutInflater.from(mContext);
View talkView = mInflater.inflate(R.layout.fragment_list, null);
View groupView = mInflater.inflate(R.layout.fragment_list, null);
mViewList.add(talkView);
mViewList.add(groupView);

MyPagerAdapter mAdapter = new MyPagerAdapter(mViewList, mTitleList);
viewPager.setAdapter(mAdapter);                 //给ViewPager设置适配器
tabLayout.setupWithViewPager(viewPager);        //将TabLayout和ViewPager关联起来。
tabLayout.setTabsFromPagerAdapter(mAdapter);    //给Tabs设置适配器

talkListView= (ListView)((PullToRefreshLayout)talkView).getChildAt(1);
groupListView= (ListView)((PullToRefreshLayout)groupView).getChildAt(1);

talkListView.setAdapter(new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, Arrays.asList("111","222","333","444","555")));
groupListView.setAdapter(new ArrayAdapter<>(mContext, android.R.layout.simple_list_item_1, Arrays.asList("111","222","333","444","555")));

return mView;
}

private class MyPagerAdapter extends PagerAdapter {
private List<View> mViewList;
private List<String> mTitleList;

public MyPagerAdapter(List<View> mViewList, List<String> mTitleList) {
this.mViewList = mViewList;
this.mTitleList = mTitleList;
}

@Override
public int getCount() {
return mViewList.size();                             //页卡数
}

@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;                              //官方推荐写法
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mViewList.get(position));          //添加页卡
return mViewList.get(position);
}

@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mViewList.get(position));      //删除页卡
}

@Override
public CharSequence getPageTitle(int position) {
return mTitleList.get(position);                    //页卡标题
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: