Android中fragment+viewpager实现布局

Android中fragment+viewpager实现布局,第1张

概述本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下

本文实例为大家分享了AndroID九宫格图片展示的具体代码,供大家参考,具体内容如下

1.先布局实现mian.xml

<?xml version="1.0" enCoding="utf-8"?> <relativeLayout 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="com.bwei.fragment.MainActivity">    <androID.support.v4.vIEw.VIEwPager     androID:ID="@+ID/pager"     androID:layout_wIDth="wrap_content"     androID:layout_height="wrap_content" />    <RadioGroup     androID:ID="@+ID/radioGroup1"     androID:layout_wIDth="match_parent"     androID:layout_height="wrap_content"     androID:layout_alignBottom="@+ID/pager"     androID:layout_centerHorizontal="true"     androID:orIEntation="horizontal"     androID:background="#ccc"     >      <Radiobutton       androID:ID="@+ID/radio0"       androID:layout_wIDth="0dp"       androID:layout_height="match_parent"       androID:checked="true"       androID:button="@null"       androID:layout_weight="1"       androID:text="微信"       androID:drawabletop="@mipmap/ic_launcher_round"       androID:gravity="center"       />      <Radiobutton       androID:ID="@+ID/radio1"       androID:layout_wIDth="0dp"       androID:layout_height="match_parent"       androID:button="@null"       androID:layout_weight="1"       androID:text="通讯录"       androID:drawabletop="@mipmap/ic_launcher_round"       androID:gravity="center"       />      <Radiobutton       androID:ID="@+ID/radio2"       androID:layout_wIDth="0dp"       androID:layout_height="match_parent"       androID:button="@null"       androID:layout_weight="1"       androID:text="发现"       androID:drawabletop="@mipmap/ic_launcher_round"       androID:gravity="center" />     <Radiobutton       androID:ID="@+ID/radio3"       androID:layout_wIDth="0dp"       androID:layout_height="wrap_content"       androID:button="@null"       androID:layout_weight="1"       androID:text="我的"       androID:drawabletop="@mipmap/ic_launcher_round"       androID:gravity="center"/>   </RadioGroup> </relativeLayout> 

2.创建3个fragment 要继承Fragment类v4包下的

public class FragmentThree extends Fragment {   @Nullable   @OverrIDe   public VIEw onCreateVIEw(LayoutInflater inflater,@Nullable VIEwGroup container,@Nullable Bundle savedInstanceState) {      //引入布局文件     VIEw vIEw = inflater.inflate(R.layout.fragmentthree,null);     return vIEw;   } } 

3.创建fragment 相对应的布局文件

<?xml version="1.0" enCoding="utf-8"?> <relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"   androID:layout_wIDth="match_parent"   androID:layout_height="match_parent">     <TextVIEw     androID:ID="@+ID/textVIEw"     androID:layout_wIDth="wrap_content"     androID:layout_height="wrap_content"     androID:layout_alignParenttop="true"     androID:layout_centerHorizontal="true"     androID:layout_margintop="230dp"     androID:text="one" /> </relativeLayout> 

4.创建适配器继承FragmentPagerAdapter

package com.bwei.fragment;  import androID.content.Context; import androID.support.v4.app.Fragment; import androID.support.v4.app.FragmentManager; import androID.support.v4.app.FragmentPagerAdapter;  import java.util.List;   public class MyAdapter extends FragmentPagerAdapter {   private List<Fragment> fragments;   private Context context;   //构造方法   public MyAdapter(FragmentManager fm,List<Fragment> fragments,Context context) {     super(fm);     this.fragments = fragments;     this.context = context;   }   //得到item条目   @OverrIDe   public Fragment getItem(int position) {     return fragments.get(position);   }    //得到数量   @OverrIDe   public int getCount() {     return fragments.size();   } } 

5.在mainActivity实现效果

package com.bwei.fragment;  import androID.graphics.color; import androID.os.Bundle; import androID.support.annotation.IDRes; import androID.support.v4.app.Fragment; import androID.support.v4.app.FragmentManager; import androID.support.v4.vIEw.VIEwPager; import androID.support.v7.app.AppCompatActivity; import androID.Widget.Radiobutton; import androID.Widget.RadioGroup; import androID.Widget.Toast;  import java.util.ArrayList; import java.util.List;  public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedchangelistener,VIEwPager.OnPagechangelistener {    private VIEwPager vPager;   private List<Fragment> fragments;   private FragmentManager fm;   private RadioGroup mRadioGroup;   @OverrIDe   protected voID onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentVIEw(R.layout.activity_main);     //初始化控件     initVIEw();     initDate();   }    private voID initVIEw() {     vPager=(VIEwPager) findVIEwByID(R.ID.pager);     vPager.setonPagechangelistener(this);     mRadioGroup=(RadioGroup) findVIEwByID(R.ID.radioGroup1);     mRadioGroup.setonCheckedchangelistener(this);   }    private voID initDate() {     fragments=new ArrayList<Fragment>();     //实例化Fragment     FragmentOne fragmentOne = new FragmentOne();     FragmentTwo fragmentTwo = new FragmentTwo();     FragmentThree fragmentThree = new FragmentThree();      //添加到集合     fragments.add(fragmentOne);     fragments.add(fragmentTwo);     fragments.add(fragmentThree);      //得到getSupportFragmentManager()的管理器     fm = getSupportFragmentManager();     //得到适配器     MyAdapter myAdapter = new MyAdapter(fm,fragments,this);     //设置适配器     vPager.setAdapter(myAdapter);   }    //VIEwPager.OnPagechangelistener监听事件   @OverrIDe   public voID onPageScrolled(int position,float positionOffset,int positionOffsetPixels) {    }    @OverrIDe   public voID onPageSelected(int position) {      for (int i = 0; i <fragments.size() ; i++) {       Radiobutton radiobutton = (Radiobutton) mRadioGroup.getChildAt(i);       if (i==position) {         radiobutton.setChecked(true);         //设置选中的颜色         radiobutton.setBackgroundcolor(color.RED);       }else {         radiobutton.setChecked(false);         radiobutton.setBackgroundcolor(color.BLACK);         radiobutton.setBackgroundcolor(color.BLACK);       }     }   }    @OverrIDe   public voID onPageScrollStateChanged(int state) {    }    //RadioGroup的监听事件    @OverrIDe   public voID onCheckedChanged(RadioGroup radioGroup,@IDRes int i) {      for (int j = 0; j <fragments.size() ; j++) {       //得到radiobutton       Radiobutton radiobutton = (Radiobutton) mRadioGroup.getChildAt(j);       int ID = radiobutton.getID();       Toast.makeText(this,ID+"",Toast.LENGTH_SHORT).show();       //判断radiobutton的ID是否等于选中的ID       if (radiobutton.getID()==i) {         //设置当前页         vPager.setCurrentItem(j);       }     }   } } 

6.最后的效果图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android中fragment+viewpager实现布局全部内容,希望文章能够帮你解决Android中fragment+viewpager实现布局所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1144051.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存