仿美团APP的底部滑动菜单实现

背景:在现在的APP的应用中,类似仿美团APP的底部滑动菜单,应用是挺多的,例如QQ,微信,支付宝都应用到。
开发流程
1)设置selector(背景选择器),在res的目录下建立新的文件夹(drawable-nodpi),在里面建立新的xml文件,选择资源类型为Drawable的selector,在每一个selector

中建立item选项:声明如下:

<item  android:state_checked="false"  android:drawable="@drawable/img01g_15"></item>//未选中的按钮的背景
 <item  android:state_checked="true"  android:drawable="@drawable/img02_11"></item>

//选中的按钮的背景

如果有几个底部按钮就建立几个selector文件

2)底部按钮的设立,一般选择RadioGroup ,在radiogroup中设置按钮(其中有几个重要的属性)
  <RadioButton 
            android:id="@+id/rbtn_contacter"
            android:layout_width="match_parent"
           android:layout_weight="1"//使按钮平均分配大小
            android:layout_height="wrap_content"
           android:checked="true"//一般默认第一个为选中
             android:button="@null"//使原有的按钮图案设为无
              android:drawableTop="@drawable/contactselector"//引入selector
               
            />

3)中间的滑动窗口,利用的ViewPager和Fragment。
ViewPagaer用到了外包
<android.support.v4.view.ViewPager//可以在主程序中,写入ViewPager,会自动导包,把包名复制到这里就行了
    android:id="@+id/vp_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/rg_bottom_button"
    >

</android.support.v4.view.ViewPager>
ViewPager要用到适配器(adapter),这里所要用的适配器是FragmentPagerAdapter,但这个适配器不能直接使用,需要写一个子类
ViewPager使用这个子类
class MyPageFramgent extends FragmentPagerAdapter{


public MyPageFramgent(FragmentManager fm) {
super(fm);

}




public Fragment getItem(int position) {
//fragment的位置
return fragments.get(position);//fragments为所要显示在屏幕的页数
}
/*
 * 统计Fragment的页数,这里可以写死,也可以最好写fragments.size()
 * 
 */
@Override
public int getCount() {

return fragments.size();
}

}
4)声明Fragment,要实现几个按钮的滑动,就要声明几个Fragment,在声明中继承Fragment,并重写onCreateView,这个方法需要放回值
public class FragmentContacters  extends Fragment{
//声明oncreateView方法,加载设置的fragment的layout,返回View
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragmentcontacters, null);
return view;
}
}
5)添加Fragment,建立一个Fragment集合往这个集合中添加。
fragments = new ArrayList<Fragment>();
//往对象中添加fragment,这是第三步中的返回值要用到的
fragments.add(new FragmentContacters());

6)设置适配器,里面需要一个参数。这个参数是个重点,由etSupportFragmentManager()方法得到,要得到这个方法,切记要将ACtivity改成FragmentActivity,然后为ViewPager设置监听器
 FragmentManager manger = getSupportFragmentManager();
adapter=new MyPageFramgent(manger);

viewPager.setAdapter(adapter);













你可能感兴趣的:(仿美团APP的底部滑动菜单实现)