分享
分享赚钱 收藏 举报 版权申诉 / 7

类型ViewPage+Fragment实现区域顶部tab滑动切换(烟台杰瑞教育Android培训部原创).docx

  • 上传人:buyk185
  • 文档编号:4015181
  • 上传时间:2018-12-05
  • 格式:DOCX
  • 页数:7
  • 大小:187.63KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    ViewPage+Fragment实现区域顶部tab滑动切换(烟台杰瑞教育Android培训部原创).docx
    资源描述:

    1、 烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打造一流人才服务平台-ViewPage+Fragment 实现区域顶部 tab滑动切换一、问题描述本系列将结合案例应用,陆续向大家介绍一些 Android 典型界面的设计,首先说说tab 导航,导航分为一层和两层(底部区块+ 区域内头部导航),主要实现方案有RadioGroup+ViewPage+Fragment、Viewpager Indicator、ActionBar Tabs、FragmentTabHost+Fragment 等,下面我们先采用RadioGroup+ViewPage

    2、+Fragment 实现区域头部导航。如图所示:烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打造一流人才服务平台-二、案例主要组件1、先看一下 MainActivity 布局2、MainActivity 代码:public class MainActivity extends FragmentActivity implements OnPageChangeListenerprivate ViewPager viewPager;private RadioGroup rgChannel=null;private HorizontalSc

    3、rollView hvChannel;private PageFragmentAdapter adapter=null;private List fragmentList=new ArrayList();Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打

    4、造一流人才服务平台-private void initView()rgChannel=(RadioGroup)super.findViewById(R.id.rgChannel);viewPager=(ViewPager)super.findViewById(R.id.vpNewsList);hvChannel=(HorizontalScrollView)super.findViewById(R.id.hvChannel);rgChannel.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() Override

    5、public void onCheckedChanged(RadioGroup group, int checkedId) viewPager.setCurrentItem(checkedId); );viewPager.setOnPageChangeListener(this);initTab();/动态产生 RadioButtoninitViewPager();rgChannel.check(0);private void initTab()List channelList=ChannelDb.getSelectedChannel();for(int i=0;i channelList=C

    6、hannelDb.getSelectedChannel();for(int i=0;i selectedChannel=new ArrayList();staticselectedChannel.add(new Channel(“,“头条“,0,“,“);selectedChannel.add(new Channel(“,“娱乐“,0,“,“);selectedChannel.add(new Channel(“,“体育“,0,“,“);烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打造一流人才服务平台-selectedChannel.

    7、add(new Channel(“,“财经“,0,“,“);selectedChannel.add(new Channel(“,“热点“,0,“,“);selectedChannel.add(new Channel(“,“科技“,0,“,“);selectedChannel.add(new Channel(“,“图片“,0,“,“);selectedChannel.add(new Channel(“,“汽车“,0,“,“);selectedChannel.add(new Channel(“,“时尚“,0,“,“);public static List getSelectedChannel()r

    8、eturn selectedChannel;导航按钮外观:tab_rb.xml 和 tab_selector.xml 背景选择器(实现选择后带红色下划线效果)tab_selector.xml:烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打造一流人才服务平台-3、PageFragmentAdapter 适配器public class PageFragmentAdapter extends FragmentPagerAdapterprivate List fragmentList;private FragmentManager fm;p

    9、ublic PageFragmentAdapter(FragmentManager fm,List fragmentList)super(fm);this.fragmentList=fragmentList;this.fm=fm;Overridepublic Fragment getItem(int idx) return fragmentList.get(idx%fragmentList.size();Overridepublic int getCount() return fragmentList.size();Override public int getItemPosition(Obj

    10、ect object) return POSITION_NONE; /没有找到 child要求重新加载 4、NewsFragment 组件:public class NewsFragment extends Fragment private String weburl;private String channelName;Overridepublic void onAttach(Activity activity) super.onAttach(activity);private View view;Overridepublic View onCreateView(LayoutInflater

    11、 inflater, ViewGroup container,Bundle savedInstanceState) if(view=null)/优化 View减少 View的创建次数 烟台杰瑞教育科技有限公司( Android 开发培训部) 版权所有-杰瑞教育( ) 专注 IT 技能培训 打造一流人才服务平台-/该部分可通过 xml文件设计 Fragment界面,再通过 LayoutInflater转换为View组件/这里通过代码为 fragment添加一个 TextViewTextView tvTitle=new TextView(getActivity();tvTitle.setText(

    12、channelName);tvTitle.setTextSize(16);tvTitle.setGravity(Gravity.CENTER);tvTitle.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);view=tvTitle;ViewGroup parent=(ViewGroup)view.getParent();if(parent!=null)/如果 View已经添加到容器中,要进行删除,负责会报错parent.removeView(view);return view;Overridepublic void setArguments(Bundle bundle) /接收传入的数据weburl=bundle.getString(“weburl“);channelName=bundle.getString(“name“);

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:ViewPage+Fragment实现区域顶部tab滑动切换(烟台杰瑞教育Android培训部原创).docx
    链接地址:https://www.docduoduo.com/p-4015181.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开