mirror of
https://github.com/Tencent/QMUI_Android.git
synced 2026-10-28 19:16:55 +08:00
dialog theme change demo
This commit is contained in:
@@ -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>
|
||||
|
||||
|
||||
+43
-10
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user