在开发过程中,一个APP中的各个界面的标题栏一般都是一样的,有的还带有功能按钮。那么,如果每一个界面我们都把标题栏的布局写一遍,是不是感觉有点繁琐,怎么办呢?
解决方案:自定义标题栏布局。
1、自定义布局Java文件代码如下: package com.deepreality.corporation_app.CustomViews; import android.app.Activity; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.deepreality.corporation_app.R; /** * 自定义的标题栏(方便重复使用) */ public class RelativeLayoutTitle extends RelativeLayout implements View.OnClickListener { private Context mContext; public String navigationTitle = "标题栏"; private ImageView imageView; public RelativeLayoutTitle(Context context, AttributeSet attrs) { super(context, attrs); mContext = context; LayoutInflater.from(context).inflate(R.layout.layout_title_withgoback, this); imageView = findViewById(R.id.Layout_Title_ivGoBack); imageView.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.Layout_Title_ivGoBack: { ((Activity) mContext).finish(); break; } default:break; } } /** * 设置标题 * @param navigationTitle */ public void setNavigationTitle(String navigationTitle) { this.navigationTitle = navigationTitle; TextView textView = (TextView) findViewById(R.id.Layout_Title_tvTitle); textView.setText(navigationTitle); } }
2、相应的布局文件中引用:
<com.deepreality.corporation_app.CustomViews.RelativeLayoutTitle android:id="@+id/Activity_Register_rLayoutTitle" android:layout_width="match_parent" android:layout_height="50dp"></com.deepreality.corporation_app.CustomViews.RelativeLayoutTitle>
3、在Activity中实现对标题TextView的赋值
relativeLayoutTitle.setNavigationTitle("用户注册");
PS:不管是一个ImageView和TextView,你可以加自己相要的View。比如,Button之类的都可以。