android 底部导航栏 ViewPager+RadioGroup+Fragment

public class ShouyeFragment extends Fragment{
	private View view;
	//注意,实现的方法是onCreateView,和onDestroyView。View
	@Override
	public View onCreateView(LayoutInflater inflater,
			@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
		Log.i("ShouyeFragment","onCreateView()...");
		if(view == null) {
			view = inflater.inflate(R.layout.fragment_shouye, container, false);
		}
		return view;
	}
	
	@Override
	public void onDestroyView() {
		super.onDestroyView();
		((ViewGroup)view.getParent()).removeView(view);
	}
}

1.ViewPager是android.support.v4.view.ViewPager包下的


2.Fragment  也是v4包下的


3.RadioGroup

<RadioGroup 
        android:id="@+id/rg"
        style="@style/dibu_daohang"
        >
        <RadioButton
            android:id="@+id/shouye"
            style="@style/dibu_daohang_button"
            android:text="@string/shouye"
            />
        <RadioButton 
            android:id="@+id/fenlei"
            style="@style/dibu_daohang_button"
            android:text="@string/fenlei"
            />
        <RadioButton 
            android:id="@+id/gouwuche"
            style="@style/dibu_daohang_button"
            android:text="@string/gouwuche"
            />
        <RadioButton 
            android:id="@+id/wode"
            style="@style/dibu_daohang_button"
            android:text="@string/wode"
            />
    </RadioGroup>

<RadioGroup 
        android:id="@+id/rg"
        style="@style/dibu_daohang"
        >
        <RadioButton
            android:id="@+id/shouye"
            style="@style/dibu_daohang_button"
            android:text="@string/shouye"
            />
        <RadioButton 
            android:id="@+id/fenlei"
            style="@style/dibu_daohang_button"
            android:text="@string/fenlei"
            />
        <RadioButton 
            android:id="@+id/gouwuche"
            style="@style/dibu_daohang_button"
            android:text="@string/gouwuche"
            />
        <RadioButton 
            android:id="@+id/wode"
            style="@style/dibu_daohang_button"
            android:text="@string/wode"
            />
    </RadioGroup>



4. Style:

<!-- 底部导航栏的样式 ,继承自match_wrap,有了父类所有属性-->
    <style name="dibu_daohang" parent="@style/match_wrap">
        <!-- 方向属性 -->
        <item name="android:orientation">horizontal</item>
        <!-- 背景属性 -->
        <item name="android:background">@color/red</item>
    </style>
    
    <style name="dibu_daohang_button" >
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:layout_weight">1</item>
        <item name="android:textSize">20sp</item>
        <item name="android:textColor">@drawable/item_selecotr</item>
        <item name="android:gravity">center</item>
        <item name="android:button">@null</item>
        <item name="android:paddingTop">5dp</item>
        <item name="android:paddingBottom">5dp</item>
    </style>

5.  Activity需要继承FragmentActivity  

实现OnPageChangeListener接口

public class HomeActivity extends FragmentActivity implements OnPageChangeListener,OnClickListener{
	
	private ViewPager pager;
	private RadioGroup rg;
	//放的是四个Fragment,用来显示点击后的效果
	private List<Fragment> fragments;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.home_layout);
		initView();
	}
	private void initView() {
		pager = (ViewPager) findViewById(R.id.vp);
		rg = (RadioGroup) findViewById(R.id.rg);
		findViewById(R.id.fenlei).setOnClickListener(this);
		findViewById(R.id.gouwuche).setOnClickListener(this);
		findViewById(R.id.wode).setOnClickListener(this);
		findViewById(R.id.shouye).setOnClickListener(this);
		//往集合中放了四个Fragment
		fragments = new ArrayList<Fragment>();
		fragments.add(new ShouyeFragment());//首页
		fragments.add(new FenleiFragment());//分类
		fragments.add(new GouwucheFragment());//购物车
		fragments.add(new WodeFragment());//我的
		FragmentPagerAdapter fragmentPagerAdapter = new FragmentPagerAdapter(this.getSupportFragmentManager()) {
			
			@Override
			public int getCount() {
				return fragments.size();
			}
			
			@Override
			public Fragment getItem(int position) {
				return fragments.get(position);
			}
		};
		pager.setAdapter(fragmentPagerAdapter);
		pager.setOnPageChangeListener(this);
		rg.check(R.id.shouye);
	}
	
	@Override
	public void finish() {
		ViewGroup viewGroup = (ViewGroup) getWindow().getDecorView();
		viewGroup.removeAllViews();
		super.finish();
	}
	
	@Override
	public void onPageScrollStateChanged(int position) {
		
	}
	@Override
	public void onPageScrolled(int arg0, float arg1, int arg2) {
		Log.i("HomeActivity","...arg0:" + arg0);
	}
	@Override
	public void onPageSelected(int position) {
		Log.i("HomeActivity","...position:" + position);
		switch(position) {
		case 0:
			rg.check(R.id.shouye);
			break;
		case 1:
			rg.check(R.id.fenlei);
			break;
		case 2:
			rg.check(R.id.gouwuche);
			break;
		case 3:
			rg.check(R.id.wode);
			break;
		}
	}
	@Override
	public void onClick(View view) {
		switch(view.getId()) {
		case R.id.shouye:
			pager.setCurrentItem(0,true);
			break;
		case R.id.fenlei:
			//pager显示当前页面,参数1:List集合中的第几个元素
			pager.setCurrentItem(1, true);
			break;
		case R.id.gouwuche:
			pager.setCurrentItem(2, true);
			break;
		case R.id.wode:
			pager.setCurrentItem(3, true);
			break;
		}
	}
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值