开头的是如何做的,可以讲一下吗

来源:1-1 网格布局UI实现

慕神7506910

2020-01-16 17:42

就是Nav_Bar那一部分

写回答 关注

2回答

  • 大迷糊and小迷糊
    2020-08-02 03:07:33

    可以参考本系列(一)课程

  • 扶二平叔
    2020-03-01 14:17:02

    因为nav_bar需要多次使用,所以先将nav_bar单独做好,封装,这样可以在多次使用时直接引用进来,方便使用

    在xml文件引用nav_bar语句

    <include layout="@layout/nav_bar"/>

    nav_bar.xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="@dimen/nacBarHeight"
        android:paddingLeft="@dimen/paddingSize"
        android:paddingRight="@dimen/paddingSize"
        android:background="@color/red">
    
        <ImageView
            android:id="@+id/iv_back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:src="@mipmap/back"/>
    
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textSize="@dimen/navBarTextSize"
            android:textColor="@android:color/white"
            android:text="音乐播放器"/>
    
        <ImageView
            android:id="@+id/iv_me"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@mipmap/me"
            android:layout_gravity="right|center_vertical"/>
    
    </FrameLayout>

    然后在BaseActivity中创建一个初始化nav_bar的方法,用来控制nav_bar的显示内容和点击事件

    initNavBar方法:

    protected void initNavBar (boolean isShowBack, String title, boolean isShowMe){
        //获取控件
        mIvBack = fd(R.id.iv_back);
        mIvMe = fd(R.id.iv_me);
        mTvTitle = fd(R.id.tv_title);
    
        //控制后退按钮是否可见
        mIvBack.setVisibility(isShowBack ? View.VISIBLE:View.GONE);
        //控制个人中心按钮是否可见
        mIvMe.setVisibility( isShowMe ? View.VISIBLE:View.GONE);
        //设置标题
        mTvTitle.setText(title);
    
        //后退按钮点击事件
        mIvBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
    
        //个人中心按钮点击事件
        mIvMe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(BaseActivity.this,MeActivity.class);
                startActivity(intent);
            }
        });
    }

    最后直接在使用到nav_bar的activity的initView方法中调用此方法设置nav_bar内容就行了

    例如个人中心页面调用initNavBar方法:

    private void initView(){
        initNavBar(true,"个人中心",false);
    }


我的云音乐(二)

高仿网易云音乐,从零开始开发一款专属自己的音乐APP。

7935 学习 · 82 问题

查看课程

相似问题