Android10.3-ViewPager+Fragment实现仿微信界面

来源:互联网 发布:java 磁盘io 编辑:程序博客网 时间:2024/05/30 13:41

首先将实现界面给大家看看










实现的代码有四个小的碎片,和一个完整的XML界面

《1》四个碎片

  <ImageView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/wx"        />

 <ImageView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/txl"        />

 <ImageView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/w"        />

<ImageView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:src="@drawable/fx"        />



《2》一个完整的XML的界面

 <android.support.v4.view.ViewPager        android:layout_width="match_parent"        android:layout_height="0dp"        android:layout_weight="1"        android:id="@+id/vp_main_pager"        >    </android.support.v4.view.ViewPager>    <RadioGroup        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:orientation="horizontal"        android:id="@+id/rg_main_group"        >        <RadioButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:id="@+id/rb_main_01"            android:text="微信"            android:textSize="14dp"            android:button="@null"            android:gravity="center"            android:background="@drawable/et_select"            android:drawableTop="@drawable/wx1"            />        <RadioButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:id="@+id/rb_main_02"            android:text="通讯录"            android:textSize="14dp"            android:button="@null"            android:gravity="center"            android:background="@drawable/et_select"            android:drawableTop="@drawable/txl1"            />        <RadioButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:id="@+id/rb_main_03"            android:text="发现"            android:textSize="14dp"            android:button="@null"            android:gravity="center"            android:background="@drawable/et_select"            android:drawableTop="@drawable/fx1"            />        <RadioButton            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_weight="1"            android:id="@+id/rb_main_04"            android:text="我的"            android:textSize="14dp"            android:button="@null"            android:gravity="center"            android:background="@drawable/et_select"            android:drawableTop="@drawable/w1"            />    </RadioGroup>

四个Fragment和一个Activity

<1>四个Fragment

public class WxFragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.wxactivity,null);    }}

public class Txlfragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.txlactivity,null);    }}

public class Myfragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.myactivity,null);    }}

public class Fxfragment extends Fragment {    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        return inflater.inflate(R.layout.fxactivity,null);    }}

<2>一个Activity

public class MainActivity extends AppCompatActivity {    private int [] id={R.id.rb_main_01,R.id.rb_main_02,R.id.rb_main_03,R.id.rb_main_04};    private ViewPager vp_main_pager;    private List<Fragment> fragments=new ArrayList<>();    private RadioGroup rg_main_group;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        vp_main_pager =(ViewPager) findViewById(R.id.vp_main_pager);        WxFragment wxFragment=new WxFragment();        Txlfragment txlfragment=new Txlfragment();        Fxfragment fxfragment=new Fxfragment();        Myfragment myfragment=new Myfragment();        fragments.add(wxFragment);        fragments.add(txlfragment);        fragments.add(fxfragment);        fragments.add(myfragment);        vp_main_pager.setAdapter(new MyAad(getSupportFragmentManager()));        rg_main_group =(RadioGroup) findViewById(R.id.rg_main_group);        rg_main_group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {            @Override            public void onCheckedChanged(RadioGroup group, @IdRes int checkedId) {                if(checkedId==id[0]){                    vp_main_pager.setCurrentItem(0);                }else if(checkedId==id[1]){                    vp_main_pager.setCurrentItem(1);                }else if(checkedId==id[2]){                    vp_main_pager.setCurrentItem(2);                }else if(checkedId==id[3]){                    vp_main_pager.setCurrentItem(3);                }            }        });        rg_main_group.check(id[0]);        vp_main_pager.setCurrentItem(0);        vp_main_pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {            @Override            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {            }            @Override            public void onPageSelected(int position) {            }            @Override            public void onPageScrollStateChanged(int state) {                if(state==2){                    rg_main_group.check(id[vp_main_pager.getCurrentItem()]);                }            }        });    }    class MyAad extends FragmentPagerAdapter{        public MyAad(FragmentManager fm) {            super(fm);        }        @Override        public Fragment getItem(int position) {            return fragments.get(position);        }        @Override        public int getCount() {            return fragments.size();        }    }}















阅读全文
0 0
原创粉丝点击