mirror of
https://github.com/Tencent/QMUI_Android.git
synced 2026-10-24 08:25:14 +08:00
This commit is contained in:
@@ -27,9 +27,9 @@ import android.widget.RelativeLayout;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.qmuiteam.qmui.R;
|
||||
import com.qmuiteam.qmui.util.QMUIDisplayHelper;
|
||||
import com.qmuiteam.qmui.util.QMUIResHelper;
|
||||
import com.qmuiteam.qmui.R;
|
||||
import com.qmuiteam.qmui.util.QMUIViewHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -349,9 +349,11 @@ public class QMUIDialog extends Dialog {
|
||||
protected ArrayList<QMUIDialogMenuItemView> mMenuItemViews;
|
||||
protected LinearLayout mMenuItemContainer;
|
||||
protected LinearLayout.LayoutParams mMenuItemLp;
|
||||
private int mContentAreaMaxHeight;
|
||||
|
||||
public MenuBaseDialogBuilder(Context context) {
|
||||
super(context);
|
||||
mContentAreaMaxHeight = (int) (QMUIDisplayHelper.getScreenHeight(context) * 0.75);
|
||||
mMenuItemViews = new ArrayList<>();
|
||||
mMenuItemLp = new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
@@ -384,6 +386,11 @@ public class QMUIDialog extends Dialog {
|
||||
|
||||
}
|
||||
|
||||
public T setContentAreaMaxHeight(int contentAreaMaxHeight) {
|
||||
mContentAreaMaxHeight = contentAreaMaxHeight;
|
||||
return (T) this;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreateContent(QMUIDialog dialog, ViewGroup parent) {
|
||||
mMenuItemContainer = new LinearLayout(mContext);
|
||||
@@ -409,7 +416,16 @@ public class QMUIDialog extends Dialog {
|
||||
for (QMUIDialogMenuItemView itemView : mMenuItemViews) {
|
||||
mMenuItemContainer.addView(itemView, mMenuItemLp);
|
||||
}
|
||||
parent.addView(mMenuItemContainer);
|
||||
ScrollView scrollView = new ScrollView(mContext) {
|
||||
@Override
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
heightMeasureSpec = MeasureSpec.makeMeasureSpec(mContentAreaMaxHeight,
|
||||
MeasureSpec.AT_MOST);
|
||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||
}
|
||||
};
|
||||
scrollView.addView(mMenuItemContainer);
|
||||
parent.addView(scrollView);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+41
-3
@@ -24,10 +24,10 @@ import com.qmuiteam.qmui.widget.QMUITopBar;
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
|
||||
import com.qmuiteam.qmuidemo.QDDataManager;
|
||||
import com.qmuiteam.qmuidemo.model.QDItemDescription;
|
||||
import com.qmuiteam.qmuidemo.R;
|
||||
import com.qmuiteam.qmuidemo.base.BaseFragment;
|
||||
import com.qmuiteam.qmuidemo.lib.annotation.Widget;
|
||||
import com.qmuiteam.qmuidemo.model.QDItemDescription;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
@@ -78,6 +78,7 @@ public class QDDialogFragment extends BaseFragment {
|
||||
"带 Checkbox 的消息确认框",
|
||||
"单选菜单类型对话框",
|
||||
"多选菜单类型对话框",
|
||||
"多选菜单类型对话框(item 数量很多)",
|
||||
"带输入框的对话框",
|
||||
"高度适应键盘升降的对话框"
|
||||
};
|
||||
@@ -109,9 +110,12 @@ public class QDDialogFragment extends BaseFragment {
|
||||
showMultiChoiceDialog();
|
||||
break;
|
||||
case 6:
|
||||
showEditTextDialog();
|
||||
showNumerousMultiChoiceDialog();
|
||||
break;
|
||||
case 7:
|
||||
showEditTextDialog();
|
||||
break;
|
||||
case 8:
|
||||
showAutoDialog();
|
||||
break;
|
||||
}
|
||||
@@ -237,6 +241,40 @@ public class QDDialogFragment extends BaseFragment {
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private void showNumerousMultiChoiceDialog() {
|
||||
final String[] items = new String[]{
|
||||
"选项1", "选项2", "选项3", "选项4", "选项5", "选项6",
|
||||
"选项7", "选项8", "选项9", "选项10", "选项11", "选项12",
|
||||
"选项13", "选项14", "选项15", "选项16", "选项17", "选项18"
|
||||
};
|
||||
final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(getActivity())
|
||||
.setCheckedItems(new int[]{1, 3})
|
||||
.addItems(items, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
|
||||
}
|
||||
});
|
||||
builder.addAction("取消", new QMUIDialogAction.ActionListener() {
|
||||
@Override
|
||||
public void onClick(QMUIDialog dialog, int index) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
builder.addAction("提交", new QMUIDialogAction.ActionListener() {
|
||||
@Override
|
||||
public void onClick(QMUIDialog dialog, int index) {
|
||||
String result = "你选择了 ";
|
||||
for (int i = 0; i < builder.getCheckedItemIndexes().length; i++) {
|
||||
result += "" + builder.getCheckedItemIndexes()[i] + "; ";
|
||||
}
|
||||
Toast.makeText(getActivity(), result, Toast.LENGTH_SHORT).show();
|
||||
dialog.dismiss();
|
||||
}
|
||||
});
|
||||
builder.show();
|
||||
}
|
||||
|
||||
private void showEditTextDialog() {
|
||||
final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(getActivity());
|
||||
builder.setTitle("标题")
|
||||
@@ -256,7 +294,7 @@ public class QDDialogFragment extends BaseFragment {
|
||||
Toast.makeText(getActivity(), "您的昵称: " + text, Toast.LENGTH_SHORT).show();
|
||||
dialog.dismiss();
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "请填入昵称" , Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(getActivity(), "请填入昵称", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user