QMUITipDialog

This commit is contained in:
cgspine
2019-10-25 16:33:40 +08:00
parent e5c118b93f
commit 0bbd53f2f0
12 changed files with 266 additions and 197 deletions
@@ -308,4 +308,8 @@ public class QMUISkinValueBuilder {
}
return builder.toString();
}
public void release(){
QMUISkinValueBuilder.release(this);
}
}
@@ -19,9 +19,12 @@ package com.qmuiteam.qmui.widget.dialog;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import androidx.annotation.IntDef;
import androidx.annotation.LayoutRes;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.ContextCompat;
import android.text.TextUtils;
import android.util.TypedValue;
@@ -35,8 +38,13 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import com.qmuiteam.qmui.R;
import com.qmuiteam.qmui.skin.QMUISkinHelper;
import com.qmuiteam.qmui.skin.QMUISkinManager;
import com.qmuiteam.qmui.skin.QMUISkinValueBuilder;
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
import com.qmuiteam.qmui.widget.QMUILoadingView;
import com.qmuiteam.qmui.widget.textview.QMUISpanTouchFixTextView;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -54,6 +62,8 @@ import java.lang.annotation.RetentionPolicy;
public class QMUITipDialog extends Dialog {
private boolean mFollowSkin = false;
public QMUITipDialog(Context context) {
this(context, R.style.QMUI_TipDialog);
}
@@ -63,21 +73,29 @@ public class QMUITipDialog extends Dialog {
setCanceledOnTouchOutside(false);
}
public void setFollowSkin(boolean followSkin) {
mFollowSkin = followSkin;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initDialogWidth();
}
private void initDialogWidth() {
Window window = getWindow();
if (window != null) {
WindowManager.LayoutParams wmLp = window.getAttributes();
wmLp.width = ViewGroup.LayoutParams.MATCH_PARENT;
window.setAttributes(wmLp);
@Override
protected void onStart() {
super.onStart();
if (mFollowSkin) {
QMUISkinManager.defaultInstance(getContext()).register(this);
}
}
@Override
protected void onStop() {
super.onStop();
QMUISkinManager.defaultInstance(getContext()).unRegister(this);
}
/**
* 生成默认的 {@link QMUITipDialog}
* <p>
@@ -119,6 +137,8 @@ public class QMUITipDialog extends Dialog {
private CharSequence mTipWord;
private boolean mFollowSkin = true;
public Builder(Context context) {
mContext = context;
}
@@ -141,96 +161,140 @@ public class QMUITipDialog extends Dialog {
return this;
}
public Builder setFollowSkin(boolean followSkin) {
mFollowSkin = followSkin;
return this;
}
public QMUITipDialog create(){
return create(true);
}
public QMUITipDialog create(boolean cancelable) {
return create(cancelable, R.style.QMUI_TipDialog);
}
/**
* 创建 Dialog, 但没有弹出来, 如果要弹出来, 请调用返回值的 {@link Dialog#show()} 方法
*
* @param cancelable 按系统返回键是否可以取消
* @return 创建的 Dialog
*/
public QMUITipDialog create(boolean cancelable) {
QMUITipDialog dialog = new QMUITipDialog(mContext);
public QMUITipDialog create(boolean cancelable, int style) {
QMUITipDialog dialog = new QMUITipDialog(mContext, style);
dialog.setCancelable(cancelable);
dialog.setContentView(R.layout.qmui_tip_dialog_layout);
ViewGroup contentWrap = (ViewGroup) dialog.findViewById(R.id.contentWrap);
dialog.setFollowSkin(mFollowSkin);
Context dialogContext = dialog.getContext();
QMUITipDialogView dialogView = new QMUITipDialogView(dialogContext);
QMUISkinValueBuilder builder = QMUISkinValueBuilder.acquire();
if (mCurrentIconType == ICON_TYPE_LOADING) {
QMUILoadingView loadingView = new QMUILoadingView(mContext);
loadingView.setColor(Color.WHITE);
loadingView.setSize(QMUIDisplayHelper.dp2px(mContext, 32));
LinearLayout.LayoutParams loadingViewLP = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
loadingView.setLayoutParams(loadingViewLP);
contentWrap.addView(loadingView);
QMUILoadingView loadingView = new QMUILoadingView(dialogContext);
loadingView.setColor(QMUIResHelper.getAttrColor(
dialogContext, R.attr.qmui_skin_support_tip_dialog_loading_color));
} else if (mCurrentIconType == ICON_TYPE_SUCCESS || mCurrentIconType == ICON_TYPE_FAIL || mCurrentIconType == ICON_TYPE_INFO) {
ImageView imageView = new ImageView(mContext);
LinearLayout.LayoutParams imageViewLP = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
imageView.setLayoutParams(imageViewLP);
loadingView.setSize(QMUIResHelper.getAttrDimen(
dialogContext, R.attr.qmui_tip_dialog_loading_size));
builder.tintColor(QMUIResHelper.getAttrString(
dialogContext, R.attr.qmui_skin_def_tip_dialog_loading_color));
QMUISkinHelper.setSkinValue(loadingView, builder);
dialogView.addView(loadingView, onCreateIconOrLoadingLayoutParams(dialogContext));
} else if (mCurrentIconType == ICON_TYPE_SUCCESS ||
mCurrentIconType == ICON_TYPE_FAIL ||
mCurrentIconType == ICON_TYPE_INFO) {
ImageView imageView = new AppCompatImageView(mContext);
builder.clear();
Drawable drawable;
if (mCurrentIconType == ICON_TYPE_SUCCESS) {
imageView.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.qmui_icon_notify_done));
drawable = QMUIResHelper.getAttrDrawable(
dialogContext, R.attr.qmui_skin_support_tip_dialog_icon_success_src);
builder.src(QMUIResHelper.getAttrString(
dialogContext, R.attr.qmui_skin_def_tip_dialog_icon_success_src));
} else if (mCurrentIconType == ICON_TYPE_FAIL) {
imageView.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.qmui_icon_notify_error));
drawable = QMUIResHelper.getAttrDrawable(
dialogContext, R.attr.qmui_skin_support_tip_dialog_icon_error_src);
builder.src(QMUIResHelper.getAttrString(
dialogContext, R.attr.qmui_skin_def_tip_dialog_icon_error_src));
} else {
imageView.setImageDrawable(ContextCompat.getDrawable(mContext, R.drawable.qmui_icon_notify_info));
drawable = QMUIResHelper.getAttrDrawable(
dialogContext, R.attr.qmui_skin_support_tip_dialog_icon_info_src);
builder.src(QMUIResHelper.getAttrString(
dialogContext, R.attr.qmui_skin_def_tip_dialog_icon_info_src));
}
contentWrap.addView(imageView);
imageView.setImageDrawable(drawable);
QMUISkinHelper.setSkinValue(imageView, builder);
dialogView.addView(imageView, onCreateIconOrLoadingLayoutParams(dialogContext));
}
if (mTipWord != null && mTipWord.length() > 0) {
TextView tipView = new TextView(mContext);
LinearLayout.LayoutParams tipViewLP = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
if (mCurrentIconType != ICON_TYPE_NOTHING) {
tipViewLP.topMargin = QMUIDisplayHelper.dp2px(mContext, 12);
}
tipView.setLayoutParams(tipViewLP);
TextView tipView = new QMUISpanTouchFixTextView(mContext);
tipView.setEllipsize(TextUtils.TruncateAt.END);
tipView.setGravity(Gravity.CENTER);
tipView.setMaxLines(2);
tipView.setTextColor(ContextCompat.getColor(mContext, R.color.qmui_config_color_white));
tipView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
tipView.setTextSize(TypedValue.COMPLEX_UNIT_PX,
QMUIResHelper.getAttrDimen(dialogContext, R.attr.qmui_tip_dialog_text_size));
tipView.setTextColor(QMUIResHelper.getAttrColor(
dialogContext, R.attr.qmui_skin_support_tip_dialog_text_color));
tipView.setText(mTipWord);
contentWrap.addView(tipView);
builder.clear();
builder.textColor(QMUIResHelper.getAttrString(
dialogContext, R.attr.qmui_skin_def_tip_dialog_text_color));
QMUISkinHelper.setSkinValue(tipView, builder);
dialogView.addView(tipView, onCreateTextLayoutParams(dialogContext, mCurrentIconType));
}
builder.release();
dialog.setContentView(dialogView);
return dialog;
}
protected LinearLayout.LayoutParams onCreateIconOrLoadingLayoutParams(Context context){
return new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
}
protected LinearLayout.LayoutParams onCreateTextLayoutParams(Context context, @IconType int iconType){
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
if(iconType != ICON_TYPE_NOTHING){
lp.topMargin = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_text_margin_top);
}
return lp;
}
}
/**
* 传入自定义的布局并使用这个布局生成 TipDialog
* CustomBuilder with xml layout
*/
public static class CustomBuilder {
private Context mContext;
private int mContentLayoutId;
private boolean mFollowSkin = true;
public CustomBuilder(Context context) {
mContext = context;
}
public CustomBuilder setFollowSkin(boolean followSkin) {
mFollowSkin = followSkin;
return this;
}
public CustomBuilder setContent(@LayoutRes int layoutId) {
mContentLayoutId = layoutId;
return this;
}
/**
* 创建 Dialog, 但没有弹出来, 如果要弹出来, 请调用返回值的 {@link Dialog#show()} 方法
*
* @return 创建的 Dialog
*/
public QMUITipDialog create() {
QMUITipDialog dialog = new QMUITipDialog(mContext);
dialog.setContentView(R.layout.qmui_tip_dialog_layout);
ViewGroup contentWrap = (ViewGroup) dialog.findViewById(R.id.contentWrap);
LayoutInflater.from(mContext).inflate(mContentLayoutId, contentWrap, true);
dialog.setFollowSkin(mFollowSkin);
Context dialogContext = dialog.getContext();
QMUITipDialogView tipDialogView = new QMUITipDialogView(dialogContext);
LayoutInflater.from(dialogContext).inflate(mContentLayoutId, tipDialogView, true);
dialog.setContentView(tipDialogView);
return dialog;
}
}
@@ -0,0 +1,78 @@
/*
* Tencent is pleased to support the open source community by making QMUI_Android available.
*
* Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the MIT License (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
*
* http://opensource.org/licenses/MIT
*
* Unless required by applicable law or agreed to in writing, software distributed under the License is
* distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qmuiteam.qmui.widget.dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.Gravity;
import com.qmuiteam.qmui.R;
import com.qmuiteam.qmui.layout.QMUILinearLayout;
import com.qmuiteam.qmui.skin.QMUISkinHelper;
import com.qmuiteam.qmui.skin.QMUISkinValueBuilder;
import com.qmuiteam.qmui.util.QMUIResHelper;
public class QMUITipDialogView extends QMUILinearLayout {
private final int mMaxWidth;
private final int mMiniWidth;
private final int mMiniHeight;
public QMUITipDialogView(Context context) {
super(context);
setOrientation(VERTICAL);
setGravity(Gravity.CENTER_HORIZONTAL);
int radius = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_radius);
Drawable background = QMUIResHelper.getAttrDrawable(context, R.attr.qmui_skin_support_tip_dialog_bg);
int paddingHor = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_padding_horizontal);
int paddingVer = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_padding_vertical);
setBackground(background);
setPadding(paddingHor, paddingVer, paddingHor, paddingVer);
setRadius(radius);
QMUISkinValueBuilder builder = QMUISkinValueBuilder.acquire();
builder.background(QMUIResHelper.getAttrString(context, R.attr.qmui_skin_def_tip_dialog_bg));
QMUISkinHelper.setSkinValue(this, builder);
builder.release();
mMaxWidth = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_max_width);
mMiniWidth = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_min_width);
mMiniHeight = QMUIResHelper.getAttrDimen(context, R.attr.qmui_tip_dialog_min_height);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
if(widthSize > mMaxWidth){
widthMeasureSpec = MeasureSpec.makeMeasureSpec(mMaxWidth, widthMode);
}
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
boolean needRemeasure = false;
if(getMeasuredWidth() < mMiniWidth){
widthMeasureSpec = MeasureSpec.makeMeasureSpec(mMiniWidth, MeasureSpec.EXACTLY);
needRemeasure = true;
}
if(getMeasuredHeight() < mMiniHeight){
heightMeasureSpec = MeasureSpec.makeMeasureSpec(mMiniHeight, MeasureSpec.EXACTLY);
needRemeasure = true;
}
if(needRemeasure){
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Tencent is pleased to support the open source community by making QMUI_Android available.
Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions and
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="@dimen/qmui_dialog_radius"/>
<solid android:color="@color/qmui_config_color_white"/>
</shape>
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Tencent is pleased to support the open source community by making QMUI_Android available.
Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions and
limitations under the License.
-->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/qmui_config_color_75_pure_black" />
<corners android:radius="15dp" />
</shape>
@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Tencent is pleased to support the open source community by making QMUI_Android available.
Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions and
limitations under the License.
-->
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/contentWrap"
style="@style/qmui_tip_dialog_wrap"
android:orientation="vertical"/>
</merge>
+24 -5
View File
@@ -235,13 +235,32 @@
<attr name="qmui_dialog_menu_container_style" format="reference" />
<attr name="qmui_dialog_menu_item_style" format="reference" />
<!-- tips -->
<attr name="qmui_tip_dialog_bg" format="reference" />
<attr name="qmui_tip_dialog_min_width" format="dimension" />
<attr name="qmui_tip_dialog_min_height" format="dimension" />
<!--**********************************************
* qmui tip dialog *
**********************************************-->
<attr name="qmui_tip_dialog_min_width" format="dimension"/>
<attr name="qmui_tip_dialog_min_height" format="dimension"/>
<attr name="qmui_tip_dialog_max_width" format="dimension"/>
<attr name="qmui_tip_dialog_padding_vertical" format="dimension" />
<attr name="qmui_tip_dialog_padding_horizontal" format="dimension" />
<attr name="qmui_tip_dialog_margin_horizontal" format="dimension" />
<attr name="qmui_tip_dialog_radius" format="dimension"/>
<attr name="qmui_tip_dialog_loading_size" format="dimension"/>
<attr name="qmui_tip_dialog_text_margin_top" format="dimension"/>
<attr name="qmui_tip_dialog_text_size" format="dimension"/>
<attr name="qmui_skin_support_tip_dialog_bg" format="reference" />
<attr name="qmui_skin_support_tip_dialog_loading_color" format="reference"/>
<attr name="qmui_skin_support_tip_dialog_text_color" format="reference"/>
<attr name="qmui_skin_support_tip_dialog_icon_success_src" format="reference"/>
<attr name="qmui_skin_support_tip_dialog_icon_error_src" format="reference"/>
<attr name="qmui_skin_support_tip_dialog_icon_info_src" format="reference"/>
<attr name="qmui_skin_def_tip_dialog_bg" format="string"/>
<attr name="qmui_skin_def_tip_dialog_loading_color" format="string"/>
<attr name="qmui_skin_def_tip_dialog_text_color" format="string"/>
<attr name="qmui_skin_def_tip_dialog_icon_success_src" format="string"/>
<attr name="qmui_skin_def_tip_dialog_icon_error_src" format="string"/>
<attr name="qmui_skin_def_tip_dialog_icon_info_src" format="string"/>
<!--**********************************************
* qmui bottom sheet *
-58
View File
@@ -1,58 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Tencent is pleased to support the open source community by making QMUI_Android available.
Copyright (C) 2017-2018 THL A29 Limited, a Tencent company. All rights reserved.
Licensed under the MIT License (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://opensource.org/licenses/MIT
Unless required by applicable law or agreed to in writing, software distributed under the License is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
either express or implied. See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<!--**********************************************
* Dialog *
**********************************************-->
<style name="qmui_tip_dialog_wrap">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:minWidth">?attr/qmui_tip_dialog_min_width</item>
<item name="android:minHeight">?attr/qmui_tip_dialog_min_height</item>
<item name="android:layout_gravity">center</item>
<item name="android:layout_marginLeft">?attr/qmui_content_spacing_horizontal</item>
<item name="android:layout_marginRight">?attr/qmui_content_spacing_horizontal</item>
<item name="android:gravity">center</item>
<item name="android:paddingLeft">?attr/qmui_tip_dialog_padding_horizontal</item>
<item name="android:paddingRight">?attr/qmui_tip_dialog_padding_horizontal</item>
<item name="android:paddingTop">?attr/qmui_tip_dialog_padding_vertical</item>
<item name="android:paddingBottom">?attr/qmui_tip_dialog_padding_vertical</item>
<item name="android:background">?attr/qmui_tip_dialog_bg</item>
</style>
<style name="qmui_tab_sign_count_view">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">?attr/qmui_tab_sign_count_view_minSize</item>
<item name="qmui_backgroundColor">?attr/qmui_skin_support_tab_sign_count_view_bg_color</item>
<item name="qmui_isRadiusAdjustBounds">true</item>
<item name="android:textSize">10sp</item>
<item name="android:textColor">?attr/qmui_skin_support_tab_sign_count_view_text_color</item>
<item name="android:gravity">center</item>
<item name="android:singleLine">true</item>
<item name="android:paddingLeft">?attr/qmui_tab_sign_count_view_padding_horizontal</item>
<item name="android:paddingRight">?attr/qmui_tab_sign_count_view_padding_horizontal</item>
<item name="android:minWidth">?attr/qmui_tab_sign_count_view_minSize</item>
<item name="android:minHeight">?attr/qmui_tab_sign_count_view_minSize</item>i_ta
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="android:ellipsize">end</item>
</style>
</resources>
+19 -3
View File
@@ -25,6 +25,24 @@
<item name="qmui_tab_icon_position">left</item>
</style>
<style name="QMUI.TabSegment.SignCount">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">?attr/qmui_tab_sign_count_view_minSize</item>
<item name="qmui_backgroundColor">?attr/qmui_skin_support_tab_sign_count_view_bg_color</item>
<item name="qmui_isRadiusAdjustBounds">true</item>
<item name="android:textSize">10sp</item>
<item name="android:textColor">?attr/qmui_skin_support_tab_sign_count_view_text_color</item>
<item name="android:gravity">center</item>
<item name="android:singleLine">true</item>
<item name="android:paddingLeft">?attr/qmui_tab_sign_count_view_padding_horizontal</item>
<item name="android:paddingRight">?attr/qmui_tab_sign_count_view_padding_horizontal</item>
<item name="android:minWidth">?attr/qmui_tab_sign_count_view_minSize</item>
<item name="android:minHeight">?attr/qmui_tab_sign_count_view_minSize</item>i_ta
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="android:ellipsize">end</item>
</style>
<!--********************* Button *********************-->
<style name="QMUI.RoundButton" parent="@style/Button.Compat">
<item name="android:layout_width">wrap_content</item>
@@ -115,8 +133,7 @@
<style name="QMUI.Dialog" parent="android:Theme.Dialog">
<item name="android:backgroundDimAmount">?attr/qmui_dialog_background_dim_amount</item>
<item name="android:windowBackground">@color/qmui_config_color_transparent</item>
<item name="android:windowNoTitle">true</item><!-- 不用window title,使用自己的layout来做title -->
<!-- <item name="android:windowTitleStyle">@style/dialog_title</item> --><!-- 不用设置windowStyleStyle,因为windowNoTitle=true -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item><!-- 在中间弹框、背后有遮罩的效果 -->
</style>
@@ -187,7 +204,6 @@
<item name="qmui_paddingTopWhenNotTitle">27dp</item>
</style>
<style name="QMUI.Dialog.EditContent">
<item name="android:textColor">?attr/qmui_skin_support_dialog_edit_text_color</item>
<item name="android:textColorHint">?attr/qmui_skin_support_dialog_edit_text_hint_color</item>
+29 -9
View File
@@ -98,7 +98,7 @@
<!-- skin support-->
<item name="qmui_tab_sign_count_view">@style/qmui_tab_sign_count_view</item>
<item name="qmui_tab_sign_count_view">@style/QMUI.TabSegment.SignCount</item>
<item name="qmui_tab_sign_count_view_minSize">@dimen/qmui_tab_sign_count_view_minSize</item>
<item name="qmui_tab_sign_count_view_minSize_with_text">
@dimen/qmui_tab_sign_count_view_minSize_with_text
@@ -229,20 +229,12 @@
<item name="qmui_dialog_edit_bottom_line_height">1dp</item>
<item name="qmui_dialog_title_style">@style/QMUI.Dialog.Title</item>
<item name="qmui_dialog_message_content_style">@style/QMUI.Dialog.MessageContent</item>
<item name="qmui_dialog_action_container_style">@style/QMUI.Dialog.ActionContainer</item>
<item name="qmui_dialog_action_style">@style/QMUI.Dialog.Action</item>
<item name="qmui_dialog_edit_content_style">@style/QMUI.Dialog.EditContent</item>
<item name="qmui_dialog_menu_container_style">@style/QMUI.Dialog.MenuContainer</item>
<item name="qmui_dialog_menu_item_style">@style/QMUI.Dialog_MenuItem</item>
<!-- tip -->
<item name="qmui_tip_dialog_bg">@drawable/qmui_tip_dialog_bg</item>
<item name="qmui_tip_dialog_min_width">120dp</item>
<item name="qmui_tip_dialog_min_height">56dp</item>
<item name="qmui_tip_dialog_margin_horizontal">?attr/qmui_content_spacing_horizontal</item>
<item name="qmui_tip_dialog_padding_vertical">12dp</item>
<item name="qmui_tip_dialog_padding_horizontal">?attr/qmui_content_padding_horizontal</item>
<item name="qmui_skin_support_dialog_bg">@color/qmui_config_color_white</item>
<item name="qmui_skin_support_dialog_title_text_color">?attr/qmui_config_color_black</item>
@@ -271,6 +263,34 @@
<item name="qmui_skin_def_s_dialog_menu_item_bg">qmui_skin_support_s_dialog_menu_item_bg</item>
<item name="qmui_skin_def_dialog_menu_item_text_color">qmui_skin_support_dialog_menu_item_text_color</item>
<!--**********************************************
* qmui tip dialog *
**********************************************-->
<item name="qmui_tip_dialog_min_width">120dp</item>
<item name="qmui_tip_dialog_min_height">40dp</item>
<item name="qmui_tip_dialog_max_width">270dp</item>
<item name="qmui_tip_dialog_padding_vertical">14dp</item>
<item name="qmui_tip_dialog_padding_horizontal">?attr/qmui_content_padding_horizontal</item>
<item name="qmui_tip_dialog_radius">15dp</item>
<item name="qmui_tip_dialog_loading_size">32dp</item>
<item name="qmui_tip_dialog_text_margin_top">12dp</item>
<item name="qmui_tip_dialog_text_size">14sp</item>
<item name="qmui_skin_support_tip_dialog_bg">@color/qmui_config_color_75_pure_black</item>
<item name="qmui_skin_support_tip_dialog_loading_color">@color/qmui_config_color_white</item>
<item name="qmui_skin_support_tip_dialog_text_color">@color/qmui_config_color_white</item>
<item name="qmui_skin_support_tip_dialog_icon_success_src">@drawable/qmui_icon_notify_done</item>
<item name="qmui_skin_support_tip_dialog_icon_error_src">@drawable/qmui_icon_notify_error</item>
<item name="qmui_skin_support_tip_dialog_icon_info_src">@drawable/qmui_icon_notify_info</item>
<item name="qmui_skin_def_tip_dialog_bg">qmui_skin_support_tip_dialog_bg</item>
<item name="qmui_skin_def_tip_dialog_loading_color">qmui_skin_support_tip_dialog_loading_color</item>
<item name="qmui_skin_def_tip_dialog_text_color">qmui_skin_support_tip_dialog_text_color</item>
<item name="qmui_skin_def_tip_dialog_icon_success_src">qmui_skin_support_tip_dialog_icon_success_src</item>
<item name="qmui_skin_def_tip_dialog_icon_error_src">qmui_skin_support_tip_dialog_icon_error_src</item>
<item name="qmui_skin_def_tip_dialog_icon_info_src">qmui_skin_support_tip_dialog_icon_info_src</item>
<!--**********************************************
* qmui list item bg *
**********************************************-->
@@ -95,12 +95,6 @@ public class QDTipDialogFragment extends BaseFragment {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
final QMUITipDialog tipDialog;
switch (position) {
case 0:
tipDialog = new QMUITipDialog.Builder(getContext())
.setIconType(QMUITipDialog.Builder.ICON_TYPE_LOADING)
.setTipWord("正在加载")
.create();
break;
case 1:
tipDialog = new QMUITipDialog.Builder(getContext())
.setIconType(QMUITipDialog.Builder.ICON_TYPE_SUCCESS)
+1
View File
@@ -126,6 +126,7 @@
<item name="qmui_skin_support_dialog_edit_text_hint_color">@color/qmui_config_color_75_white</item>
<item name="qmui_skin_support_dialog_menu_item_text_color">@color/qmui_config_color_white</item>
<item name="app_primary_color">@color/qmui_config_color_pure_black</item>
<item name="app_skin_common_background">@color/qmui_config_color_gray_2</item>
<item name="app_skin_common_background_1">@color/qmui_config_color_gray_1</item>