ViewPaper+Fragment+RadioButton
来源:互联网 发布:室内在线设计软件 编辑:程序博客网 时间:2024/06/06 12:49
最近自己写的Viewpaper +底部导航
废话少说直接看效果
思路:
viewpaper主要用来实现界面的左右滑动。
1.要实现底部导航能够控制,界面的滑动
2.要实现页面的滑动能够控制,底部导航的变化
接下来看一下xml布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> <RadioGroup android:id="@+id/rg" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal" android:background="@android:color/holo_purple" android:weightSum="4" > <RadioButton android:id="@+id/rb1" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/r4_selector" android:gravity="center_horizontal" android:text="首页" android:textColor="@drawable/selector_text_color" /> <RadioButton android:id="@+id/rb2" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/r1_selector" android:gravity="center_horizontal" android:text="菜单" android:textColor="@drawable/selector_text_color" /> <RadioButton android:id="@+id/rb3" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/r2_selector" android:gravity="center_horizontal" android:text="功能" android:textColor="@drawable/selector_text_color" /> <RadioButton android:id="@+id/rb4" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:button="@null" android:drawableTop="@drawable/r3_selector" android:gravity="center_horizontal" android:text="退出" android:textColor="@drawable/selector_text_color" /> </RadioGroup></RelativeLayout>
java代码:
这个demo使用了4个Fragment ,只是充当布局,此处不再给出(自己可以随便写)
主要看一下MainActivity
- Viewpager 是通过适配器(FragmentPagerAdapter)的来提供数据的
此处需要重写一下适配器
package com.example.viewpager_3;import java.util.List;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;public class FragmentPaperAdp extends FragmentPagerAdapter{ List<Fragment> list; public FragmentPaperAdp(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub } public FragmentPaperAdp(FragmentManager fm,List<Fragment> list) { super(fm); // TODO Auto-generated constructor stub this.list=list; } @Override public Fragment getItem(int arg0) { // TODO Auto-generated method stub return list.get(arg0); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); }}
2.接下来就是真正的硬菜了MainActivity
首先你要实例化所有的Fragment,并且把他们装到数组中
//初始化数据 private void initData() { // TODO Auto-generated method stub Fragment f1=new AFragment(); Fragment f2=new BFragment(); Fragment f3=new CFragment(); Fragment f4=new DFragment(); ArrayList<Fragment> list=new ArrayList<Fragment>(); list.add(f1); list.add(f2); list.add(f3); list.add(f4); }```
填充适配器的数据
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//把碎片装进数组 initData(); initView(); FragmentPaperAdp fadapter=new FragmentPaperAdp(getSupportFragmentManager(), list); viewPager.setAdapter(fadapter); rg.setOnCheckedChangeListener(oncheck); viewPager.setOnPageChangeListener(pagechaner);}//初始化视图组件private void initView() { // TODO Auto-generated method stub viewPager=(ViewPager) findViewById(R.id.viewpager); rg=(RadioGroup) findViewById(R.id.rg);}
用RadioButton控制Viewpaper界面的切换
//选择按钮的监听public RadioGroup.OnCheckedChangeListener oncheck=new OnCheckedChangeListener() { public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(R.id.rb1==checkedId) { viewPager.setCurrentItem(0); }else if(R.id.rb2==checkedId) { viewPager.setCurrentItem(1); }else if(R.id.rb3==checkedId) { viewPager.setCurrentItem(2); }else if(R.id.rb4==checkedId) { viewPager.setCurrentItem(3); } }};
用界面的变化去控制单选按钮的变化
//是页面的变换控制单选按钮
ViewPager.OnPageChangeListener pagechaner=new OnPageChangeListener() {
public void onPageSelected(int position) { // TODO Auto-generated method stub /** *从radiogroup中找到他的radiobutton, *然后设置他的选中状态 * */ ((RadioButton)rg.getChildAt(position)).setChecked(true); } public void onPageScrolled(int arg0, float arg1, int arg2) { // TODO Auto-generated method stub } public void onPageScrollStateChanged(int arg0) { // TODO Auto-generated method stub }};
“`
资源下载地址
http://download.csdn.net/detail/nodonoidea/9031291
0 0
- ViewPaper+Fragment+RadioButton
- Viewpaper Fragment RadioButton 仿QQ主界面
- ViewPaper+Fragment
- ViewPaper + Fragment 滑动销毁
- tablay fragment viewpaper
- ViewPaper和Fragment
- fragment 和viewpaper结合fragment生命周期减少
- 在ViewPaper中获取Fragment对象
- viewpaper
- viewPager+RadioButton+Fragment
- RadioButton实现Fragment切换
- Radiogroup+radioButton+fragment
- RadioGroup+RadioButton切换Fragment
- fragment和radiobutton
- fragment和radiobutton
- Fragment+ViewPaper实现不依赖库的菜单+页面滑动
- Android Design:原生TabLayout+viewpaper+fragment实现滑动效果
- Android Design:原生TabLayout+viewpaper+fragment实现滑动效果
- 大视野在线测评:2038: [2009国家集训队]小Z的袜子(hose) 莫队算法,分块处理
- Oracle数据库的启动和关闭
- PMT表的结构和流类型
- eclipse 一些快捷用法
- 去掉iframe的边框
- ViewPaper+Fragment+RadioButton
- winform 创建自定义控件
- 2.DB-Mysql++实例
- Java abstract抽象类与匿名内部类
- 学习iOS,你能迎娶到白富美吗?
- Pots(POJ_3414)
- 分离式JavaScript
- 安全密码(2013中南大学研究生复试上机题)
- android oom 全解析