为了账号安全,请及时绑定邮箱和手机立即绑定

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

就是Nav_Bar那一部分

正在回答

2 回答

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

0 回复 有任何疑惑可以回复我~

因为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);
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信