开头的是如何做的,可以讲一下吗
就是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);
}举报