支持
- 左侧返回按钮(图标)
- 中间标题(文本)
- 右侧图标文本
代码实现
布局文件
<?xml version="1.0" encoding="utf-8"?><!--1号:标题栏布局:右侧有一个返回按钮,中间有一个居中的单行标题-->
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/titleBarHeight"
android:background="@color/whiteColor"
android:orientation="horizontal"
>
<!--返回按钮-->
<ImageView
android:id="@+id/back"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:paddingLeft="@dimen/default_margin"
android:paddingRight="@dimen/default_margin"
android:scaleType="centerInside"
android:src="@mipmap/fanhui"
tools:ignore="ContentDescription"/>
<!--文本标题-->
<TextView
android:id="@+id/titleText"
android:layout_width="160dp"
android:layout_height="match_parent"
android:gravity="center"
android:singleLine="true"
android:ellipsize="end"
android:textColor="@color/backTextColor"
android:textSize="@dimen/titleTextSize"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<!--右侧按钮-->
<ImageView
android:id="@+id/rightImageView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:scaleType="centerInside"
android:layout_marginRight="@dimen/default_margin"
android:visibility="gone"
tools:ignore="ContentDescription"/>
<TextView
android:id="@+id/rightText"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:layout_marginRight="@dimen/default_margin"
android:gravity="center"
android:singleLine="true"
android:visibility="gone"
android:textColor="@color/lightTextColor"
android:textSize="14sp"/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/lineHeight"
android:background="@color/titlelineColor"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
自定义代码实现
/**
* 1号标题:左侧有一个返回按钮,中间有一个单行的标题栏
* 右侧增减图片按钮
* @author 刘盼盼 2017-11-17 11-46
* @version 1.0.0
*/
public class Title extends FrameLayout {
public Title(Context context, AttributeSet attrs) {
super(context, attrs);
View view = LayoutInflater.from(context).inflate(R.layout.title, this);
back = (ImageView) view.findViewById(R.id.back);
titleText = (TextView) view.findViewById(R.id.titleText);
rightImageView = (ImageView) view.findViewById(R.id.rightImageView);
rightText = (TextView) view.findViewById(R.id.rightText);
}
/**
* 设置返回按钮点击侦听
*
* @param onClickListener 实现了视图单击侦听器的类
*/
public void setBackOnClickListener(OnClickListener onClickListener) {
back.setOnClickListener(onClickListener);
}
/**
* 设置返回按钮隐藏
*
* @param visibility
*/
public void setBackVisibility(int visibility) {
back.setVisibility(visibility);
}
/**
* 设置右侧按钮图片
*
* @param res 图片资源
*/
public void setRightImageView(int res) {
rightImageView.setImageResource(res);
rightImageView.setVisibility(View.VISIBLE);
}
/**
* 设置右侧按钮图片点击监听
*
* @param onClickListener 点击监听类
*/
public void setRightImageViewOnClickListener(OnClickListener onClickListener) {
rightImageView.setOnClickListener(onClickListener);
}
/**
* 设置右侧按钮图片
*
* @param titleContent 文字
*/
public void setRightTextContent(String titleContent) {
rightText.setText(titleContent);
rightText.setVisibility(View.VISIBLE);
}
/**
* 设置右侧按钮图片点击监听
*
* @param onClickListener 点击监听类
*/
public void setRightTextOnClickListener(OnClickListener onClickListener) {
rightText.setOnClickListener(onClickListener);
}
/**
* 设置标题内容
*
* @param titleContent 标题内容
*/
public void setTitleTextContent(String titleContent) {
titleText.setText(titleContent);
}
/**
* 返回按钮
*/
private ImageView back;
/**
* 右侧按钮
*/
private ImageView rightImageView;
/**
* 右侧按钮
*/
private TextView rightText;
/**
* 标题内容
*/
private TextView titleText;
}
具体使用
<com.tete.sqx.customView.Title
android:id="@+id/shops_info_title"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
title.setTitleTextContent("店铺详情");//设置标头
title.setRightImageView(R.mipmap.share_2x);//设置右侧图标
//设置返回按钮的监听事件
title.setBackOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
//右侧图标点击事件的监听
title.setRightImageViewOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//分享
String path = "";
if (mData.getVender_images() != null && mData.getVender_images().size() > 0) {
path = mData.getVender_images().get(0);
}
//分享
ShareUtils.share(context, mData.getVender_name(), mData.getShare_url(), mData.getVender_description(), path);
}
});