
本文实例为大家分享了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实现布局所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)