ViewPage用fragment填充
来源:互联网 发布:mac添加桌面小组件 编辑:程序博客网 时间:2024/06/06 19:28
创建简单fragment填充的viewpager
创建初始空白fragment填充的viewpager
- 创建activity继承AppCompatActivity
- 创建fragment的xml以及activity
- 创建主界面的activity中包含viewPager
mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { //自定义的fragment return new MyFragment(); } @Override public int getCount() { return "总数"; } });
填充数据
- fragment中静态方法方便传入position
- oncreat中解析
- 在oncreatView中可以根据得到的值进行UI设置
public static TestFragment newInstance(String title) { TestFragment fragment = new TestFragment(); Bundle bundle = new Bundle(); bundle.putString("title", title); //传递这个bundle下面oncreat解析 fragment.setArguments(bundle); return fragment; }@Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mTitle = getArguments().getString(TITLE); } } @Nullable@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate("布局文件", null); /** 对UI进行设置 */ return view; }
创建底部导航栏的viewpager
xml
- 在TabHost 里面填入同等大小的Layout
- Layout中有大小相同的ViewPager和FrameLayout(可滑动区域)
- 最下面是TabWidget
android:id=”@android:id/tabs”(系统给的id)
showDividers=”none”(中间的竖线)
选中改变的xml
字体
<selector xmlns:android="http://schemas.android.com/apk/res/android" > //选中 <item android:state_selected="true" android:color="#4dd0c8"/> //按下 <item android:state_pressed="true" android:color="#4dd0c8"/> <item android:color="#cccccc"/></selector>
图标
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" android:drawable="" /><item android:state_selected="true" android:drawable="" /><item android:drawable="@drawable/tabbar_home" /></selector>
activity
- 添加每个item tab
TabHost mTabHost = (TabHost) findViewById(R.id.tab_host);mTabHost.setup();//资源获取int[] resourceIDs[]={};for (int index = 0; index < titleIDs.length; index++) { View view = getLayoutInflater().inflate(""布局ID, null, false); View view = (View) view.findViewById("控件ID"); //这个是导航栏的一个视图 此处不用layout View tab = view.findViewById("控件ID"); //设置UI view.setResource(); //tab的默认UI tab.setBackgroundColor(getResources().getColor(R.color.white)); mTabHost.addTab( //第一步是tag //第二步是分割线 //第三步设置当前的内容通过接口 mTabHost.newTabSpec(TAG[index]) .setIndicator(view) .setContent(this) );}
- 接口TabHost.TabContentFactory
@Override public View createTabContent(String s) { View view = new View(this); view.setMinimumHeight(0); view.setMinimumWidth(0); return view; }
- 两个监听 分别是viewPager.addOnPageChangeListener
- mTabHost.setOnTabChangedListener
- 此处只介绍下面的方法
mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() { @Override public void onTabChanged(String s) { if (mTabHost != null) { //获取当前tab的位置 int position = mTabHost.getCurrentTab(); //根据获取的tab位置设置ViewPager是第几个 viewPager.setCurrentItem(position); } } });
待解决
- 自定义动画 setPageTransformer
Zoom-out Page Transformer
Depth Page Transformer
[参考鸿洋大神作品](http://blog.csdn.net/lmj623565791/article/details/40411921)
阅读全文
0 0
- ViewPage用fragment填充
- viewpage + fragment
- ViewPage+fragment
- Viewpage+Fragment
- ViewPage + Fragment
- ViewPage+Fragment
- ViewPage+Fragment
- viewpage+fragment
- viewpage+fragment
- ViewPage+Fragment的使用
- Fragment+ViewPage 替换TabActivity
- ViewPage加载fragment
- ViewPage + RadioGroup + Fragment学习
- viewpage+fragment+下划线滑动
- 使用viewpage加载fragment
- ViewPage + Fragment原理分析
- ViewPage Fragment 懒加载
- ViewPage+Fragment 滑动+点击
- 装系统
- MFC/C++创建单级目录与多级目录
- CSDN日报20170619 ——《深度学习,先跟上再说》
- 数学问题——最大公约数和最小公倍数(辗转相除法)
- bootstrap model弹出框的使用
- ViewPage用fragment填充
- “插件(application/x-vlc-plugin)不受支持”NPAPI和PPAPI的问题
- 全选与取消【jQuery实例】
- phpexcel无法导出的解决方法
- 项目中的Target
- Ubuntu下制作启动盘
- 安卓软键盘弹出底部变形问题解决方案
- UVa 11344
- RecycleView控件的使用(二) 为RecyclerView添加头文件和尾部文件