我使用的开发软件是 Android Studio
所以我的依赖是这样的:
compile 'com.android.support:appcompat-v7:22.2.1'compile 'com.android.support:design:22.2.1'compile 'com.jakewharton:butterknife:7.0.1'(ps:butterknife 是一个懒人依赖库,特别好用)首先创建一个MainActivity继承 FragmentActivity类:
两个 list集合 一个装Fragment的 一个装String 文字
public class MainActivity extends FragmentActivity { @Bind(R.id.tablayout) TabLayout tablayout; @Bind(R.id.viewpager) ViewPager viewpager; FAdapter fAdapter; Context context = MainActivity.this; List<Fragment> fragments = new ArrayList<>(); List<String> strings = new ArrayList<>(); @Override PRotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); fragments.add(new Main2Activity()); fragments.add(new Main2Activity()); strings.add("第一个"); strings.add("第二个"); fAdapter = new FAdapter(getSupportFragmentManager(), context, fragments, strings); viewpager.setAdapter(fAdapter); tablayout.setupWithViewPager(viewpager); tablayout.setTabMode(TabLayout.MODE_FIXED); for (int i = 0; i < tablayout.getTabCount(); i++) { TabLayout.Tab tab = tablayout.getTabAt(i); tab.setCustomView(fAdapter.getView(i)); } }} MainActivity的布局文件是这样的:<?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"> <android.support.design.widget.TabLayout android:id="@+id/tablayout" android:layout_width="match_parent" android:layout_height="50dp" /> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" /></LinearLayout>然后特别关键的是 FAdapter是我自定义的一个适配器 继承FragmentPagerAdapter:
public class FAdapter extends FragmentPagerAdapter { Context context; int anInt; List<String> strings = new ArrayList<>(); List<Fragment> fragments = new ArrayList<>(); public FAdapter(FragmentManager fm, Context context, List<Fragment> fragments, List<String> strings) { super(fm); this.context = context; this.fragments = fragments; this.strings = strings; anInt = strings.size(); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return anInt; } //自定义 public View getView(int i) { View view = LayoutInflater.from(context).inflate(R.layout.fitem, null); TextView textView = (TextView) view.findViewById(R.id.textView); textView.setText(strings.get(i)); return view; }}创建新的Activity 继承Fragment:
public class Main2Activity extends Fragment { View view; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { view = inflater.inflate(R.layout.activity_main2, container, false); return view; } @Override public void onDestroyView() { if (view != null) { ((ViewGroup) view.getParent()).removeView(view); } super.onDestroyView(); }}以及布局文件:<?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"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:textSize="25sp" android:text="显示" /></LinearLayout>这样就大功告成了!
新闻热点
疑难解答