(1)底部导航栏——滑动动画设置

本博文禁止随意转载

在搜集相关项目中了解到的比较好用的开源包: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的初始话就基本完成了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值