//-----------------------------------------xml布局--------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_height="match_parent">
<android.support.design.widget.TabLayout
android:id="@+id/tab"
app:tabMode="scrollable"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager_03"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
>
</android.support.v4.view.ViewPager>
</LinearLayout>
//---------------------------------------------主页面-----------------------------------------------------------
lic class Frag1 extends Fragment {
private TabLayout tabLayout;
private ViewPager viewpager;
private ArrayList<String> list;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frag1, null, false);
//控件
tabLayout = view.findViewById(R.id.tab);
viewpager = view.findViewById(R.id.pager);
//tab的标题
list = new ArrayList<>();
list.add("关注");
list.add("推荐");
list.add("热点");
list.add("上海");
list.add("视频");
list.add("新时代");
list.add("国风");
//Viewpager要展示页面...设置适配器
//初始化fragment页面适配器 =》new FragmentPagerAdapter
//获取fragment 管理器=》getSupportFragmentManager
//getpagetitle 获取当前页面显示的标题是tab对应的标题 position 当前页面的标志
//getItem 获取当前位置对应的fragment
viewpager.setAdapter(new FragmentPagerAdapter(getActivity().getSupportFragmentManager()) {
//得到当前页的标题,,,也就是设置当前页面显示的标题是tab对应的标题
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
@Override
public Fragment getItem(int position) {
//初始化fragment 对应position有多少,fragment有多少
NewsFragment newsFragment = new NewsFragment();
//初始化bundle (数据盒子,装数据元素)
Bundle bundle = new Bundle();
bundle.putInt("position", position);
bundle.putString("list", list.get(position));
newsFragment.setArguments(bundle);
return newsFragment;
}
@Override
public int getCount() {
return list.size();
}
});
//tablayout要与viewpager关联
tabLayout.setupWithViewPager(viewpager);
return view;
}
}
//------------------------------------新建的fragment-------------------------------------------------------
public class NewsFragment extends Fragment {
int mPosition;
String mTitle = "";
private TextView text;
//private String mstrings;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.news_layout, container, false);
mPosition = getArguments().getInt("position");
mTitle = getArguments().getString("list");
//可有可无的两个东西
// text = view.findViewById(R.id.text);
// text.setText("第" + mPosition + "个fragment==" + mTitle);
return view;
}
}
动态添加Fragment
最新推荐文章于 2024-05-20 15:38:51 发布