TabLayout实现动态加载Fragment
来源:互联网 发布:小米wifi软件下载 编辑:程序博客网 时间:2024/05/29 12:30
首先先给大家展现一下效果图
不过在写TabLayout的时候不要忘记导依赖
compile 'com.android.support:design:26.0.0-alpha1'
下面开始写一下我们TabLayout和Viewpager的布局<?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="50dp" android:gravity="center" android:background="#2B4983" android:text="资讯" /> <android.support.design.widget.TabLayout android:id="@+id/zx_tl" android:layout_width="match_parent" android:layout_height="50dp" ></android.support.design.widget.TabLayout> <android.support.v4.view.ViewPager android:id="@+id/zx_vp" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
我们找到TabLayout和Viewpager的控件开始设置适配器等等
public class FragmentZx extends Fragment{ private TabLayout mTabLayout; private ViewPager mViewPager; private LayoutInflater mInflater; private List<String> mTitleList = new ArrayList<>();//页卡标题集合 private View view1, view2, view3, view4, view5;//页卡视图 private List<View> mViewList = new ArrayList<>();//页卡视图集合 private List<String> listTitles; private List<Fragment> fragments; private List<TextView> listTextViews; private ShuPresenter presenter; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.frag_zx,null); //找控件 mTabLayout = view.findViewById(R.id.zx_tl); mViewPager = view.findViewById(R.id.zx_vp); initData(); return view; } private void initData() { listTitles = new ArrayList<>(); fragments = new ArrayList<>(); listTextViews = new ArrayList<>(); listTitles.add("沪深"); listTitles.add("板块"); listTitles.add("指数"); listTitles.add("港股"); listTitles.add("新三板"); listTitles.add("商品"); listTitles.add("更多"); for (int i = 0; i < listTitles.size(); i++) { ContentFragment fragment = ContentFragment.newInstance(listTitles.get(i)); fragments.add(fragment); } //mTabLayout.setTabMode(TabLayout.SCROLL_AXIS_HORIZONTAL);//设置tab模式,当前为系统默认模式 for (int i=0;i<listTitles.size();i++){ mTabLayout.addTab(mTabLayout.newTab().setText(listTitles.get(i)));//添加tab选项 } FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getFragmentManager()) { @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text @Override public CharSequence getPageTitle(int position) { return listTitles.get(position); } }; mViewPager.setAdapter(mAdapter); mTabLayout.setupWithViewPager(mViewPager);//将TabLayout和ViewPager关联起来。 mTabLayout.setTabsFromPagerAdapter(mAdapter);//给Tabs设置适配器 }}写一个动态的Fragment类
public class ContentFragment extends Fragment { private View view; private static final String KEY = "title"; private TextView tvContent; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = View.inflate(getActivity(), R.layout.contentfragment,null); tvContent = view.findViewById(R.id.tv_content); String string = getArguments().getString(KEY); tvContent.setText(string); tvContent.setTextColor(Color.BLUE); tvContent.setTextSize(30); return view; } /** * fragment静态传值 */ public static ContentFragment newInstance(String str){ ContentFragment fragment = new ContentFragment(); Bundle bundle = new Bundle(); bundle.putString(KEY,str); fragment.setArguments(bundle); return fragment; }}在写ContentFragment对应的xml
<?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"> <TextView android:id="@+id/tv_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" /></LinearLayout>
阅读全文
0 0
- TabLayout实现动态加载Fragment
- 动态加载fragment配合TabLayout
- Android应用ViewPager和TabLayout动态加载Fragment,并实现view和tab动态刷新。
- TabLayout+ViewPager+Fragment懒加载实现
- TabLayout+ViewPager+Fragment实现懒加载
- TabLayout+ViewPager+fragment实现懒加载
- TabLayout + ViewPager + Fragment 实现动态框架
- tablayout动态添加fragment
- TabLayout 实现ViewPager+fragment
- TabLayout加载多个Fragment
- tablayout结合动态创建fragment
- TabLayout ViewPager Fragment 实现底部按钮菜单 Fragment 实现懒加载
- TabLayout + ViewPager + Fragment 实现布局
- TabLayout,ViewPager,Fragment实现联动
- TabLayout,ViewPager,Fragment,实现联动
- Android viewpager+fragment实现动态加载碎片(fragment重复使用)
- 动态加载fragment和实现fragment 之间的通信
- TabLayout-ViewPager填充Fragment和懒加载
- TextView代码控制点击前一张图,点击后是另一张图
- Ubuntu 16.04 + Nvidia 显卡驱动 + Cuda 8.0 (问题总结 + 解决方案)
- 2017年11月08日随笔
- 性能测试流程
- POJ 3744 概率dp+矩阵快速幂
- TabLayout实现动态加载Fragment
- 纪念碑谷2第八章(远日点)
- HashSet和TreeSet的比较
- springMVC+mybatis 之 借助SqlSessionTemplate 实现Dao层通用写法
- [Leetcode] 436. Find Right Interval 解题报告
- vue-quill-editor自定义图片上传
- android输入框显示在软键盘上边
- 【OpenCV】音符提取(形态学实例)
- 唯快不破:Python Paste 学习笔记