本博文禁止随意转载
在搜集相关项目中了解到的比较好用的开源包:bottombar
相关内容:https://www.jianshu.com/p/75f82b7d3f34
作为新手我还是选择先研究老实路子,以下是相关代码和详解
在此项目中使用的是Viewpager下的底部导航,viewpager可实现微信主界面不同碎片间滑动时的动画显示
viewpager初始化过程
此时mainactivity代码为:
public class MainActivity extends Activity {
private View view1, view2, view3;
private ViewPager viewPager; //对应的viewPager
private List<View> viewList;//作为view数组,包含三个view
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.viewpager);
LayoutInflater inflater=getLayoutInflater();
view1 = inflater.inflate(R.layout.layout1, null);//将三个view与对应布局相关联
view2 = inflater.inflate(R.layout.layout2,null);
view3 = inflater.inflate(R.layout.layout3, null);
viewList = new ArrayList<View>();// 将要分页显示的View装入数组中
viewList.add(view1);
viewList.add(view2);
viewList.add(view3);
PageAdapter所必须重写的四个函数:各自功能在代码中已经注释
boolean isViewFromObject(View arg0, Object arg1)
int getCount()
void destroyItem(ViewGroup container, int position,Object object)
Object instantiateItem(ViewGroup container, int position)
PagerAdapter pagerAdapter = new PagerAdapter() {//PageAdapter是pageview的适配器
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public int getCount() {
return viewList.size();//返回view的个数
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
container.removeView(viewList.get(position));//作用是删除container指定位置position的view。
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(viewList.get(position));//将当前view添加到container中
return viewList.get(position);//返回当前view
}
};
viewPager.setAdapter(pagerAdapter);
}
}
此时主布局内容:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.example.wechat1.MainActivity" ><!--此属性声明此布局默认与哪个活动关联-->
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewpager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />
</RelativeLayout>
同时再创建三个布局layout1,layout2,layout3,这样viewpager的初始话就基本完成了