package com.xscm.moduleutil.widget; import android.app.Activity; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.LayoutInflater; import android.widget.ImageView; import android.widget.TextView; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.databinding.DataBindingUtil; import com.blankj.utilcode.util.BarUtils; import com.xscm.moduleutil.R; import com.xscm.moduleutil.databinding.ViewCustomTopBarBinding; public class CustomTopBar extends ConstraintLayout { private OnCallBackRightIcon onCallBackRightIcon; private OnCallBackRightIcon2 onCallBackRightIcon2; private ViewCustomTopBarBinding mBinding; public CustomTopBar(Context context) { this(context, null, 0); } public CustomTopBar(Context context, AttributeSet attrs) { this(context, attrs, 0); } public CustomTopBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); mBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.view_custom_top_bar, this, true); mBinding.ivBack.setOnClickListener(v -> { if (getContext() instanceof Activity) { ((Activity) getContext()).finish(); } }); mBinding.ivIntent.setOnClickListener(v -> onCallBackRightIcon.onIntent()); TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CustomTopBar); String title = typedArray.getString(R.styleable.CustomTopBar_TopBarTitle); typedArray.recycle(); setTitle(title); setPadding(0, BarUtils.getStatusBarHeight(), 0, 0); mBinding.tvRight.setOnClickListener(v -> onCallBackRightIcon2.onIntent()); } public ImageView getIvBack() { return mBinding.ivBack; } public TextView getTvRight() { return mBinding.tvRight; } public TextView getTvTitle() { return mBinding.tvTitle; } public void setTitle(String title) { mBinding.tvTitle.setText(title); } public void setRightText(String txt) { mBinding.tvRight.setText(txt); } public void setRightColor(int color) { mBinding.tvRight.setTextColor(color); } public void setRightSize(int size) { mBinding.tvRight.setTextSize(size); } /** * 设置右图片 * * @param */ public void setRightIcon(int res) { mBinding.ivIntent.setImageResource(res); } /** * 设置图片右边距 * * @param i */ public void setImgPaddingRight(int i) { mBinding.ivIntent.setPadding(0, 0, i, 0); } public void setRightTxtVisible(boolean b) { mBinding.tvRight.setVisibility(b ? VISIBLE : GONE); } public void setRightImgVIsible(boolean b) { mBinding.ivIntent.setVisibility(b ? VISIBLE : GONE); } public void setColor(int color) { mBinding.tvTitle.setTextColor(color); mBinding.ivBack.setColorFilter(color); } public void addIntentListener(OnCallBackRightIcon onCallBackRightIcon) { this.onCallBackRightIcon = onCallBackRightIcon; } public interface OnCallBackRightIcon { void onIntent(); } public void addIntentListener2(OnCallBackRightIcon2 onCallBackRightIcon) { this.onCallBackRightIcon2 = onCallBackRightIcon; } public interface OnCallBackRightIcon2 { void onIntent(); } }