dialog theme change demo

This commit is contained in:
cgspine
2018-03-22 11:38:20 +08:00
parent 5e2a753d85
commit 10d2edcaa1
5 changed files with 120 additions and 13 deletions
@@ -94,7 +94,7 @@ public class QMUIResHelper {
}else if(attr == R.styleable.QMUITextCommonStyleDef_android_maxLines){
textView.setMaxLines(a.getInt(attr, -1));
}else if(attr == R.styleable.QMUITextCommonStyleDef_android_background){
textView.setBackground(a.getDrawable(attr));
QMUIViewHelper.setBackgroundKeepingPadding(textView, a.getDrawable(attr));
}else if(attr == R.styleable.QMUITextCommonStyleDef_android_lineSpacingExtra){
textView.setLineSpacing(a.getDimensionPixelSize(attr, 0), 1f);
}else if(attr == R.styleable.QMUITextCommonStyleDef_android_drawablePadding){
@@ -307,8 +307,10 @@ public class QMUIDialog extends Dialog {
mScrollContainer = new QMUIWrapContentScrollView(context);
mTextView = new QMUISpanTouchFixTextView(context);
MessageDialogBuilder.assignMessageTvWithAttr(mTextView, hasTitle(), R.attr.qmui_dialog_message_content_style);
mScrollContainer.addView(mTextView);
ScrollView.LayoutParams lp = new ScrollView.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
lp.gravity = mTextView.getGravity();
mScrollContainer.addView(mTextView, lp);
mScrollContainer.setVerticalScrollBarEnabled(false);
mScrollContainer.setMaxHeight(getContentAreaMaxHeight());
mTextView.setText(mMessage);
@@ -190,6 +190,7 @@
<item name="android:paddingBottom">28dp</item>
<item name="android:ellipsize">end</item>
<item name="android:lineSpacingExtra">3dp</item>
<item name="android:drawablePadding">8dp</item>
<item name="qmui_paddingTopWhenNotTitle">27dp</item>
</style>
@@ -4,6 +4,7 @@ import android.content.Context;
import android.content.DialogInterface;
import android.support.v4.content.ContextCompat;
import android.text.InputType;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -21,6 +22,7 @@ import com.qmuiteam.qmui.util.QMUIKeyboardHelper;
import com.qmuiteam.qmui.util.QMUIResHelper;
import com.qmuiteam.qmui.util.QMUIViewHelper;
import com.qmuiteam.qmui.widget.QMUITopBar;
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.qmuiteam.qmuidemo.manager.QDDataManager;
@@ -47,6 +49,7 @@ public class QDDialogFragment extends BaseFragment {
@BindView(R.id.listview) ListView mListView;
private QDItemDescription mQDItemDescription;
private int mCurrentDialogStyle = com.qmuiteam.qmui.R.style.QMUI_Dialog;
@Override
protected View onCreateView() {
@@ -66,6 +69,14 @@ public class QDDialogFragment extends BaseFragment {
}
});
mTopBar.addRightImageButton(R.mipmap.icon_topbar_overflow, R.id.topbar_right_change_button)
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showBottomSheet();
}
});
mTopBar.setTitle(mQDItemDescription.getName());
}
@@ -145,7 +156,7 @@ public class QDDialogFragment extends BaseFragment {
Toast.makeText(getActivity(), "发送成功", Toast.LENGTH_SHORT).show();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showMessageNegativeDialog() {
@@ -165,7 +176,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showLongMessageDialog() {
@@ -188,7 +199,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showConfirmMessageDialog() {
@@ -208,7 +219,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showMenuDialog() {
@@ -221,7 +232,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showSingleChoiceDialog() {
@@ -236,7 +247,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showMultiChoiceDialog() {
@@ -266,7 +277,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
});
builder.show();
builder.create(mCurrentDialogStyle).show();
}
private void showNumerousMultiChoiceDialog() {
@@ -300,7 +311,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
});
builder.show();
builder.create(mCurrentDialogStyle).show();
}
private void showEditTextDialog() {
@@ -326,7 +337,7 @@ public class QDDialogFragment extends BaseFragment {
}
}
})
.show();
.create(mCurrentDialogStyle).show();
}
private void showAutoDialog() {
@@ -344,7 +355,7 @@ public class QDDialogFragment extends BaseFragment {
dialog.dismiss();
}
});
autoTestDialogBuilder.show();
autoTestDialogBuilder.create(mCurrentDialogStyle).show();
QMUIKeyboardHelper.showKeyboard(autoTestDialogBuilder.getEditText(), true);
}
@@ -387,4 +398,26 @@ public class QDDialogFragment extends BaseFragment {
return layout;
}
}
private void showBottomSheet() {
new QMUIBottomSheet.BottomListSheetBuilder(getContext())
.addItem("使用 QMUI 默认 Dialog 样式")
.addItem("自定义样式")
.setOnSheetItemClickListener(new QMUIBottomSheet.BottomListSheetBuilder.OnSheetItemClickListener() {
@Override
public void onClick(QMUIBottomSheet dialog, View itemView, int position, String tag) {
switch (position) {
case 0:
mCurrentDialogStyle = com.qmuiteam.qmui.R.style.QMUI_Dialog;
break;
case 1:
mCurrentDialogStyle = R.style.DialogTheme2;
break;
}
dialog.dismiss();
}
})
.build().show();
}
}
+71
View File
@@ -83,4 +83,75 @@
<item name="android:background">@drawable/qmui_divider_bottom_bitmap</item>
</style>
<style name="DialogTheme2" parent="QMUI.Dialog">
<item name="qmui_dialog_wrapper_style">@style/dialog_wrapper_style_63</item>
<item name="qmui_dialog_title_style">@style/DialogTheme2TitleStyle</item>
<item name="qmui_dialog_action_container_style">@style/DialogTheme2ActionContainerStyle</item>
<item name="qmui_dialog_action_style">@style/DialogTheme2ActionStyle</item>
<item name="qmui_dialog_message_content_style">@style/DialogTheme2MessageContentStyle</item>
<item name="qmui_dialog_menu_container_style">@style/DialogTheme2MenuContainerStyle</item>
<item name="qmui_dialog_menu_item_style">@style/DialogTheme2MenuItemStyle</item>
</style>
<style name="dialog_wrapper_style_63">
<item name="android:paddingLeft">63dp</item>
<item name="android:paddingRight">63dp</item>
</style>
<style name="DialogTheme2TitleStyle" parent="QMUI.Dialog.Title">
<item name="android:textColor">?attr/qmui_config_color_gray_1</item>
<item name="android:textSize">17sp</item>
<item name="android:gravity">center</item>
<item name="android:paddingTop">28dp</item>
<item name="android:singleLine">false</item>
<item name="android:lineSpacingExtra">3dp</item>
</style>
<style name="DialogTheme2ActionContainerStyle">
<item name="android:paddingLeft">0dp</item>
<item name="android:paddingRight">0dp</item>
<item name="android:paddingTop">0dp</item>
<item name="android:paddingBottom">0dp</item>
<item name="qmui_dialog_action_container_justify_content">stretch</item>
<item name="qmui_dialog_action_height">56dp</item>
<item name="qmui_dialog_action_space">8dp</item>
<item name="qmui_topDividerColor">?attr/qmui_config_color_separator</item>
<item name="qmui_topDividerHeight">1px</item>
</style>
<style name="DialogTheme2ActionStyle">
<item name="android:textColor">?attr/qmui_config_color_blue</item>
<item name="android:textSize">15sp</item>
<item name="android:gravity">center</item>
<item name="android:minWidth">64dp</item>
<item name="android:background">@null</item>
<item name="qmui_dialog_action_button_padding_horizontal">12dp</item>
<item name="qmui_dialog_action_icon_space">6dp</item>
<item name="qmui_dialog_positive_action_text_color">?attr/qmui_config_color_blue</item>
<item name="qmui_dialog_negative_action_text_color">?attr/qmui_config_color_red</item>
</style>
<style name="DialogTheme2MessageContentStyle" parent="QMUI.Dialog.MessageContent">
<item name="android:textColor">?attr/qmui_config_color_gray_4</item>
<item name="android:textSize">13sp</item>
<item name="android:gravity">center</item>
<item name="android:paddingTop">13dp</item>
<item name="android:paddingBottom">27dp</item>
<item name="android:lineSpacingExtra">5dp</item>
<item name="qmui_paddingTopWhenNotTitle">27dp</item>
</style>
<style name="DialogTheme2MenuItemStyle" parent="@style/QMUI.Dialog_MenuItem">
<item name="android:textSize">16sp</item>
<item name="android:textColor">?attr/qmui_config_color_gray_1</item>
<item name="android:paddingLeft">32dp</item>
<item name="android:paddingRight">32dp</item>
</style>
<style name="DialogTheme2MenuContainerStyle" parent="@style/QMUI.Dialog.MenuContainer">
<item name="qmui_dialog_menu_item_height">52dp</item>
<item name="qmui_dialog_menu_container_padding_top_when_title_exist">23dp</item>
<item name="qmui_dialog_menu_container_padding_bottom_when_action_exist">24dp</item>
</style>
</resources>