Files
midi-android/moduleUtil/src/main/java/com/xscm/moduleutil/widget/CustomTopBar.java

123 lines
3.4 KiB
Java
Raw Normal View History

2025-08-26 19:34:44 +08:00
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();
}
}