mirror of
https://github.com/Tencent/QMUI_Android.git
synced 2026-10-28 19:16:55 +08:00
add some overload methods for QMUITopBar.
This commit is contained in:
@@ -36,6 +36,9 @@ import android.widget.Button;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.collection.SimpleArrayMap;
|
||||
|
||||
import com.qmuiteam.qmui.R;
|
||||
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
|
||||
import com.qmuiteam.qmui.layout.QMUIRelativeLayout;
|
||||
@@ -50,14 +53,11 @@ import com.qmuiteam.qmui.util.QMUILangHelper;
|
||||
import com.qmuiteam.qmui.util.QMUIResHelper;
|
||||
import com.qmuiteam.qmui.util.QMUIViewHelper;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.collection.SimpleArrayMap;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* A standard toolbar for use within application content.
|
||||
* <p>
|
||||
@@ -479,12 +479,17 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
|
||||
addView(view, layoutParams);
|
||||
}
|
||||
|
||||
public LayoutParams generateTopBarImageButtonLayoutParams(){
|
||||
return generateTopBarImageButtonLayoutParams(-1, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成一个 LayoutParams,当把 Button addView 到 TopBar 时,使用这个 LayouyParams
|
||||
*/
|
||||
public LayoutParams generateTopBarImageButtonLayoutParams() {
|
||||
LayoutParams lp = new LayoutParams(mTopBarImageBtnWidth, mTopBarImageBtnHeight);
|
||||
lp.topMargin = Math.max(0, (getTopBarHeight() - mTopBarImageBtnHeight) / 2);
|
||||
public LayoutParams generateTopBarImageButtonLayoutParams(int iconWidth, int iconHeight) {
|
||||
iconHeight = iconHeight > 0 ? iconHeight : mTopBarImageBtnHeight;
|
||||
LayoutParams lp = new LayoutParams(iconWidth > 0 ? iconWidth : mTopBarImageBtnWidth, iconHeight);
|
||||
lp.topMargin = Math.max(0, (getTopBarHeight() - iconHeight) / 2);
|
||||
return lp;
|
||||
}
|
||||
|
||||
@@ -493,6 +498,10 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
|
||||
return addRightImageButton(drawableResId, true, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addRightImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
return addRightImageButton(drawableResId, followTintColor, viewId, -1, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 resourceId 生成一个 TopBar 的按钮,并 add 到 TopBar 的右侧
|
||||
*
|
||||
@@ -501,9 +510,9 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
|
||||
* @param followTintColor 换肤时使用 tintColor 更改它的颜色
|
||||
* @return 返回生成的按钮
|
||||
*/
|
||||
public QMUIAlphaImageButton addRightImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
public QMUIAlphaImageButton addRightImageButton(int drawableResId, boolean followTintColor, int viewId, int iconWidth, int iconHeight) {
|
||||
QMUIAlphaImageButton rightButton = generateTopBarImageButton(drawableResId, followTintColor);
|
||||
this.addRightView(rightButton, viewId, generateTopBarImageButtonLayoutParams());
|
||||
this.addRightView(rightButton, viewId, generateTopBarImageButtonLayoutParams(iconWidth, iconHeight));
|
||||
return rightButton;
|
||||
}
|
||||
|
||||
@@ -511,6 +520,10 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
|
||||
return addLeftImageButton(drawableResId, true, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
return addLeftImageButton(drawableResId, followTintColor, viewId, -1, -1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 resourceId 生成一个 TopBar 的按钮,并 add 到 TopBar 的左边
|
||||
*
|
||||
@@ -519,9 +532,9 @@ public class QMUITopBar extends QMUIRelativeLayout implements IQMUISkinHandlerVi
|
||||
* @param followTintColor 换肤时使用 tintColor 更改它的颜色
|
||||
* @return 返回生成的按钮
|
||||
*/
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, boolean followTintColor, int viewId, int iconWidth, int iconHeight) {
|
||||
QMUIAlphaImageButton leftButton = generateTopBarImageButton(drawableResId, followTintColor);
|
||||
this.addLeftView(leftButton, viewId, generateTopBarImageButtonLayoutParams());
|
||||
this.addLeftView(leftButton, viewId, generateTopBarImageButtonLayoutParams(iconWidth, iconHeight));
|
||||
return leftButton;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ import android.widget.Button;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import androidx.collection.SimpleArrayMap;
|
||||
|
||||
import com.qmuiteam.qmui.R;
|
||||
import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton;
|
||||
import com.qmuiteam.qmui.layout.QMUIFrameLayout;
|
||||
@@ -31,8 +33,6 @@ import com.qmuiteam.qmui.qqface.QMUIQQFaceView;
|
||||
import com.qmuiteam.qmui.skin.QMUISkinValueBuilder;
|
||||
import com.qmuiteam.qmui.skin.defaultAttr.IQMUISkinDefaultAttrProvider;
|
||||
|
||||
import androidx.collection.SimpleArrayMap;
|
||||
|
||||
/**
|
||||
* 这是一个对 {@link QMUITopBar} 的代理类,需要它的原因是:
|
||||
* 我们用 fitSystemWindows 实现沉浸式状态栏后,需要将 {@link QMUITopBar} 的背景衍生到状态栏后面,这个时候 fitSystemWindows 是通过
|
||||
@@ -122,10 +122,26 @@ public class QMUITopBarLayout extends QMUIFrameLayout implements IQMUISkinDefaul
|
||||
return mTopBar.addRightImageButton(drawableResId, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addRightImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
return mTopBar.addRightImageButton(drawableResId, followTintColor, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addRightImageButton(int drawableResId, boolean followTintColor, int viewId, int iconWidth, int iconHeight) {
|
||||
return mTopBar.addRightImageButton(drawableResId, followTintColor, viewId, iconWidth, iconHeight);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, int viewId) {
|
||||
return mTopBar.addLeftImageButton(drawableResId, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, boolean followTintColor, int viewId) {
|
||||
return mTopBar.addLeftImageButton(drawableResId, followTintColor, viewId);
|
||||
}
|
||||
|
||||
public QMUIAlphaImageButton addLeftImageButton(int drawableResId, boolean followTintColor, int viewId, int iconWidth, int iconHeight) {
|
||||
return mTopBar.addLeftImageButton(drawableResId, followTintColor, viewId, iconWidth, iconHeight);
|
||||
}
|
||||
|
||||
public Button addLeftTextButton(int stringResId, int viewId) {
|
||||
return mTopBar.addLeftTextButton(stringResId, viewId);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user