引导页的页面
首先是布局文件

  <android.support.v4.view.ViewPagerandroid:id="@+id/pager"android:layout_width="match_parent"android:layout_height="match_parent" /><RadioGroupandroid:id="@+id/group"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginTop="-80dp"android:gravity="center"></RadioGroup><Buttonandroid:id="@+id/btn"android:layout_marginTop="-50dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="点击跳转"/>

引导页主页面

 protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);int[] arr = {R.drawable.aa,R.drawable.bb,R.drawable.cc,R.drawable.dd};pager = (ViewPager)findViewById(R.id.pager);btn =(Button) findViewById(R.id.btn);group = (RadioGroup)findViewById(R.id.group);btn.setVisibility(View.GONE);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivity.this, ShouActivity.class);startActivity(intent);}});list = new ArrayList<>();for (int i = 0 ;i<arr.length;i++){ImageView imageView = new ImageView(MainActivity.this);imageView.setImageResource(arr[i]);list.add(imageView);RadioButton button = new RadioButton(MainActivity.this);group.addView(button);}group.check(group.getChildAt(0).getId());Log.e("yxx","打印数据"+list.size());pager.setAdapter(new PagerAdapter() {@Overridepublic int getCount() {return list.size();}@Overridepublic boolean isViewFromObject(@NonNull View arg0, @NonNull Object agr1) {return arg0 == agr1;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {ImageView view = list.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView((View) object);}});pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int i, float v, int i1) {}@Overridepublic void onPageSelected(int i) {group.check(group.getChildAt(i).getId());if(i == list.size()-1){btn.setVisibility(View.VISIBLE);}else{btn.setVisibility(View.GONE);}}@Overridepublic void onPageScrollStateChanged(int i) {}});}

这时候就会进入到我们的切换页面和抽屉
这个时候防止页面混乱所以写了两个LinearLayout

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MyActivity.ShouActivity"android:orientation="vertical"android:id="@+id/drawlay"><LinearLayoutandroid:layout_width="150dp"android:layout_height="match_parent"android:layout_gravity="left"android:orientation="vertical"android:background="@color/colorPrimaryDark"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="我是神"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="我是神"/><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="我是神"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayoutandroid:id="@+id/frag"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="9"></FrameLayout><RadioGroupandroid:id="@+id/group"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:orientation="horizontal"><RadioButtonandroid:id="@+id/radio0"android:layout_width="0dp"android:layout_height="match_parent"android:button="@null"android:layout_weight="1"android:gravity="center"android:text="首页"/><RadioButtonandroid:id="@+id/radio1"android:layout_width="0dp"android:layout_height="match_parent"android:button="@null"android:layout_weight="1"android:gravity="center"android:text="我的"/><RadioButtonandroid:id="@+id/radio2"android:layout_width="0dp"android:layout_height="match_parent"android:button="@null"android:layout_weight="1"android:gravity="center"android:text="第三个"/></RadioGroup></LinearLayout></android.support.v4.widget.DrawerLayout>

接下来看主要的代码

protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shou);drawr = (DrawerLayout)findViewById(R.id.drawlay);frag = (FrameLayout)findViewById(R.id.frag);group = (RadioGroup)findViewById(R.id.group);actionBar = getSupportActionBar();actionBar.setDisplayHomeAsUpEnabled(true);drawr.addDrawerListener(new DrawerLayout.DrawerListener() {@Overridepublic void onDrawerSlide(@NonNull View view, float v) {}@Overridepublic void onDrawerOpened(@NonNull View view) {}@Overridepublic void onDrawerClosed(@NonNull View view) {Toast.makeText(ShouActivity.this,"我关闭了",Toast.LENGTH_LONG).show();}@Overridepublic void onDrawerStateChanged(int i) {}});ArrayList<Fragment> list = new ArrayList<>();manager = getSupportFragmentManager();FragmentTransaction transaction = manager.beginTransaction();fragment1 = new Fragment1();fragment2 = new Fragment2();fragment3 = new Fragment3();transaction.add(R.id.frag, fragment1,"fragment1");transaction.add(R.id.frag, fragment2);transaction.add(R.id.frag, fragment3);transaction.show(fragment1).hide(fragment2).hide(fragment3);transaction.commit();group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {FragmentTransaction transaction1 = manager.beginTransaction();switch (checkedId){case R.id.radio0:transaction1.show(fragment1).hide(fragment2).hide(fragment3).commit();break;case R.id.radio1:transaction1.show(fragment2).hide(fragment1).hide(fragment3).commit();break;case R.id.radio2:transaction1.show(fragment3).hide(fragment2).hide(fragment1).commit();break;}}});}//因为是Fragment之间的传值所以在Activity之间进行传值@Overrideprotected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);Fragment fragment1 = manager.findFragmentByTag("fragment1");fragment1.onActivityResult(requestCode, resultCode, data);}

接下来就到我们的频道了

<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><android.support.design.widget.TabLayoutandroid:id="@+id/tablayout"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"/><Buttonandroid:id="@+id/btn"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="+"/></LinearLayout><android.support.v4.view.ViewPagerandroid:id="@+id/pager1"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"/></LinearLayout>

这个是具体代码

 public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment1,container,false);tablayout = (TabLayout)view.findViewById(R.id.tablayout);pager = (ViewPager)view.findViewById(R.id.pager1);btn =(Button)view.findViewById(R.id.btn);myAdapter = new MyAdapter(getChildFragmentManager());pager.setAdapter(myAdapter);tablayout.setupWithViewPager(pager);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ChannelActivity.startChannelActivity((AppCompatActivity) getActivity(),channellist);}});initData();return view;}private void initData() {channellist.add(new ChannelBean("北京",true));channellist.add(new ChannelBean("北京1",true));channellist.add(new ChannelBean("北京2",true));channellist.add(new ChannelBean("北京3",false));channellist.add(new ChannelBean("北京4",false));for (int i = 0 ;i<channellist.size();i++){if(channellist.get(i).isSelect()){tablayout.addTab(tablayout.newTab().setText(channellist.get(i).getName()));if(i==0){fragmentlist.add(new Fragment01());}else if(i == 1){fragmentlist.add(new Fragment02());}else{fragmentlist.add(new Fragment03());}}}myAdapter.notifyDataSetChanged();}@Overridepublic void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);String extra = data.getStringExtra(ChannelActivity.RESULT_JSON_KEY);Gson gson = new Gson();Type type = new TypeToken<ArrayList<ChannelBean>>() {}.getType();channellist  = gson.fromJson(extra, type);tablayout.removeAllTabs();fragmentlist.clear();for (int i = 0 ;i<channellist.size();i++){if(channellist.get(i).isSelect()){tablayout.addTab(tablayout.newTab().setText(channellist.get(i).getName()));if(i==0){fragmentlist.add(new Fragment01());}else if(i == 1){fragmentlist.add(new Fragment02());}else{fragmentlist.add(new Fragment03());}}}myAdapter.notifyDataSetChanged();}private class MyAdapter extends FragmentPagerAdapter {public MyAdapter(FragmentManager fm) {super(fm);}@Overridepublic Fragment getItem(int i) {return fragmentlist.get(i);}@Overridepublic int getCount() {return fragmentlist.size();}@Nullable@Overridepublic CharSequence getPageTitle(int position) {return channellist.get(position).getName();}}

轮播图和上下拉刷新

public class Fragment01 extends Fragment {private Banner banader;String[] urls = {"https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg","https://lh4.googleusercontent.com/--dq8niRp7W4/URquVgmXvgI/AAAAAAAAAbs/-gnuLQfNnBA/s160-c/A%252520Song%252520of%252520Ice%252520and%252520Fire.jpg","https://lh5.googleusercontent.com/-7qZeDtRKFKc/URquWZT1gOI/AAAAAAAAAbs/hqWgteyNXsg/s160-c/Another%252520Rockaway%252520Sunset.jpg","https://img-my.csdn.net/uploads/201407/26/1406383265_8550.jpg","https://lh6.googleusercontent.com/-8HO-4vIFnlw/URquZnsFgtI/AAAAAAAAAbs/WT8jViTF7vw/s160-c/Antelope%252520Hallway.jpg","https://lh4.googleusercontent.com/-WIuWgVcU3Qw/URqubRVcj4I/AAAAAAAAAbs/YvbwgGjwdIQ/s160-c/Antelope%252520Walls.jpg"};String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";ArrayList<Bean.DataBean> list = new ArrayList<Bean.DataBean>();private PullToRefreshListView pth;private MyAdapter myAdapter;@Nullable@Overridepublic View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view = inflater.inflate(R.layout.fragment01,container,false);banader = (Banner)view.findViewById(R.id.bander);pth = (PullToRefreshListView) view.findViewById(R.id.pth);pth.setMode(PullToRefreshBase.Mode.BOTH);myAdapter = new MyAdapter(getActivity(), list);pth.setAdapter(myAdapter);ininlun();initData();return view;}private void initData() {if(Netutil.isconn(getActivity())){new MAsncTask().execute(urlString);}else{Toast.makeText(getActivity(),"我没有网",Toast.LENGTH_LONG).show();}}private void ininlun() {final ImageLoader instance = ImageLoader.getInstance();banader.setImageLoader(new com.youth.banner.loader.ImageLoader() {@Overridepublic void displayImage(Context context, Object path, ImageView imageView) {instance.displayImage((String)path,imageView);}});banader.setImages(Arrays.asList(urls));banader.start();}private class MAsncTask extends AsyncTask<String ,Void,String>{@Overrideprotected String doInBackground(String... strings ) {String netjson = NetWordUtils.getNetjson(strings[0]);return netjson;}@Overrideprotected void onPostExecute(String s) {super.onPostExecute(s);Gson gson = new Gson();Bean bean = gson.fromJson(s, Bean.class);List<Bean.DataBean> beanList = bean.getData();list.addAll(beanList);myAdapter.notifyDataSetChanged();}}

布局
导入依赖

  <com.youth.banner.Bannerandroid:id="@+id/bander"android:layout_weight="3"android:layout_width="match_parent"android:layout_height="0dp"/><com.handmark.pulltorefresh.library.PullToRefreshListViewandroid:id="@+id/pth"android:layout_weight="7"android:layout_width="match_parent"android:layout_height="0dp"/>

判断网咯

public class Netutil {public static boolean isconn(Context context) {boolean isf = false;ConnectivityManager systemService = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = systemService.getActiveNetworkInfo();if(networkInfo!=null){isf = true;}return isf;}
}

图片网络获取

public class MApp extends Application {@Overridepublic void onCreate() {super.onCreate();ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).build();ImageLoader instance = ImageLoader.getInstance();instance.init(build);/* ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(this).build();ImageLoader.getInstance().init(configuration);*/}
}

引导页+抽屉+页面切换+频道+Tablayout+上下拉刷新多条目AsynTask相关推荐

  1. 【Vue实用功能】Vue实现tab页多页面切换

    Vue实现tab页多页面切换 实现路由发生变化时,新增一个tab标签页,点击其他标签时切换到对应的页面,刷新网页同时保留状态 这里就直接说它实现的代码就OK!!! VueX记录下每次新增后的tab标签 ...

  2. Android之app引导页(背景图片切换加各个页面动画效果)

    转载:http://blog.csdn.net/lowprofile_coding/article/details/48037095 先看效果图: 1.显示三个页面的Activity  用view p ...

  3. vue 前端进行tab页面切换时,要求不刷新

    项目中TagsView组件用于tab页面切换,在项目中已使用keep-alive,目标页面也开启了"缓存"标志,但是在tab标签点击切换时,有几个页面数据还是刷新了.查找了相关资料 ...

  4. Vue+Element实现tab页多页面切换

    效果图GIF 源码地址 https://gitee.com/marlife/nav-tags.git 已经上传到Gitee(码云),代码拉下来之后: 1.执行安装命令:npm install 2.执行 ...

  5. 引导页onboarding页面XIB实现

    系统: Mac OS 10.14.6, XCode 11,swift 5.0, iOS 13 写作时间:2019-11-04 说明 欢迎界面,英文成为OnBoarding页面用UIScrollView ...

  6. Android开发--实现Android引导页

    几乎每个app都有引导页,下面我们来做一个引导页的实现. 引导页,是指软件首次进入或者更新完成后,软件显示的页面,一般展示软件特色功能或者更新的内容. 先判断是否第一次启动app,如果是,则进入引导页 ...

  7. mui 启动页和引导页

    一.启动页和引导页的概念 "启动页"(splash):app的启动界面,每次启动都会看到的(每次打开QQ都会看到一只企鹅). "引导页"(guide):guid ...

  8. 黑色自适应简约个人主页引导页HTML源码

    介绍: 个人引导页,页面非常简洁美观,而且还是自适应哦. 网盘下载地址: http://kekewl.cc/rvQd5gvu0pq0 图片: pc端 移动端:

  9. AUI tab实现页签滑动切换且下拉刷新(下拉固定title栏及tab栏)

    声明:菜鸟一枚,入坑不久,如有欠缺,望大神给予好的建议,完善优化,分享他人. AUI tab实现页签滑动切换且下拉刷新(下拉固定title栏及tab栏) 1:aui tab分页签,手动侧滑或点击TAB ...

最新文章

  1. 【Flutter】Flutter 应用主题 ( ThemeData | 动态修改主题 )
  2. Halcon基础知识:常规数据、对象数据、对象元组
  3. Python 一路走来 Django
  4. 浅析如何在Nancy中生成API文档
  5. 按键精灵调用迅雷下载文件
  6. 【小松教你手游开发】【面试必读(编程基础)】几种常用的设计模式介绍
  7. Ubuntu16.04.1 安装Redis-Cluster
  8. PSS E v33.40 1CD(大型电力系统仿真计算软件)
  9. APISpace 标准中文电码查询API
  10. 【经验】CCF CSP认证问题
  11. 远程服务器 Linux 用cityscape训练DeepLabv3模型(Pytorch版)并用图像测试
  12. 大华sdk(java)上传人脸图片到人脸库,订阅人脸识别对比
  13. python的logo长什么样子
  14. 量子计算机能为我们做什么,为实现量子计算,我们还需要做些什么
  15. 第十二天内容《基础交换十二》
  16. IDS--入侵检测系统的学习
  17. java39阶台阶_第四届蓝桥杯javaC组_第39级台阶
  18. img加载图片失败后处理
  19. 【微来】软件使用方法
  20. Python3入门(一)

热门文章

  1. 33个前端常用的JavaScript函数封装方法
  2. azure支持哪些服务器,什么是 Azure 路由服务器(预览版)?
  3. 云图科技,长沙VR全景拍摄来了解下?
  4. OBS录制设置基本介绍(1)
  5. linux版 myeclipse 下载地址
  6. 【报错篇】singularmatrix报错:解决方案
  7. 【CodingNoBorder - 12】无际软工队 - 求职岛:BETA 阶段测试报告
  8. MongoDB-数据库系列第二次
  9. 结构体与共用体字节数计算
  10. 同城预约上门小程序开发功能介绍——互联网+上门服务