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;
}
}
}