123 lines
3.4 KiB
Java
123 lines
3.4 KiB
Java
|
|
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();
|
||
|
|
}
|
||
|
|
}
|