首页 > 学院 > 开发设计 > 正文

FragmentActivity类的使用

2019-11-09 16:55:11
字体:
来源:转载
供稿:网友

我使用的开发软件是 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>

这样就大功告成了! 


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表