package com.android.app_base.widget; import android.content.Context; import android.graphics.Color; import android.util.AttributeSet; import android.view.Gravity; import androidx.databinding.BindingAdapter; import androidx.databinding.BindingMethod; import com.hjq.bar.TitleBar; import com.hjq.bar.TitleBarSupport; /** * @author Ljj * @date 2023.03.30. 20:47 * @desc 扩展标题栏,在原有标题栏增加标题靠左或靠右的功能 */ public class ExtendTitleBar extends TitleBar { private int titleGravity; public ExtendTitleBar(Context context) { super(context); } public ExtendTitleBar(Context context, AttributeSet attrs) { super(context, attrs); } public ExtendTitleBar(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); reSetTitleGravity(titleGravity); } @Override public TitleBar setTitleGravity(int gravity) { titleGravity = gravity; return super.setTitleGravity(gravity); } public void reSetTitleGravity(int gravity) { gravity = TitleBarSupport.getAbsoluteGravity(this, gravity); LayoutParams params = (LayoutParams) getTitleView().getLayoutParams(); params.gravity = gravity|Gravity.CENTER_VERTICAL; if (gravity == Gravity.LEFT || gravity == Gravity.START){ params.setMargins(getLeftView().getMeasuredWidth(),0,0,0); } if (gravity == Gravity.RIGHT && gravity == Gravity.END){ params.setMargins(0,0,0, getRightView().getMeasuredWidth()); } getTitleView().setLayoutParams(params); } public void setTitle(String title){ setTitle((CharSequence) title); } }