开头的是如何做的,可以讲一下吗
就是Nav_Bar那一部分
就是Nav_Bar那一部分
2020-01-16
因为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); }
举报