DialogFragment实现右侧、中间、底部菜单
来源:互联网 发布:手机电信网络加速器 编辑:程序博客网 时间:2024/04/28 08:13
效果图
实现
public class MenuDialogFragment extends DialogFragment { private String mPosition; private JSONArray mItems; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater inflater = getActivity().getLayoutInflater(); View view = inflater.inflate(R.layout.menu_dialog_layout, null); ListView listView = (ListView) view.findViewById(R.id.menu_item_lv); MenuDialogAdapter adapter = new MenuDialogAdapter(getActivity()); adapter.buildMenuItems(mPosition, mItems); listView.setAdapter(adapter); AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), android.R.style.Theme_DeviceDefault_Dialog); builder.setView(view); return builder.create(); } @Override public void onStart() { super.onStart(); Window window = getDialog().getWindow(); WindowManager.LayoutParams params = window.getAttributes(); if ("top".equals(mPosition)) { params.x = dip2px(getActivity(), 10); params.y = dip2px(getActivity(), 50); params.width = window.getWindowManager().getDefaultDisplay().getWidth() / 2; params.gravity = Gravity.TOP | Gravity.RIGHT; } else if ("center".equals(mPosition)) { params.gravity = Gravity.CENTER; } else { params.width = WindowManager.LayoutParams.MATCH_PARENT; params.gravity = Gravity.BOTTOM; } window.setAttributes(params); window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); } @Override public void setArguments(Bundle args) { try { mPosition = args.getString("position"); mItems = new JSONArray(args.getString("items")); } catch (JSONException e) { e.printStackTrace(); } } private int dip2px(Context context, float dpValue) { float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); }}调用
MenuDialogFragment menuDialog = new MenuDialogFragment();Bundle bundle = new Bundle();bundle.putString("position", position);bundle.putString("items", items.toString());menuDialog.setArguments(bundle);menuDialog.show(getActivity().getFragmentManager(), "MenuDialogFragment");
0 0
- DialogFragment实现右侧、中间、底部菜单
- Android DialogFragment实现底部弹出菜单效果
- PopupWindow实现右侧、左侧和底部弹出菜单
- PopupWindow实现右侧、左侧和底部弹出菜单
- PopupWindow实现右侧、左侧和底部弹出菜单
- PopupWindow实现右侧、左侧和底部弹出菜单
- 底部导航栏中间凸起的菜单键实现
- 实现底部导航栏中间凸起,(点击中间凸出按钮弹出菜单)
- 使用DialogFragment实现底部弹窗布局
- android中用DialogFragment实现底部弹框
- 自定义dialogfragment实现底部弹出框效果
- 自定义 DialogFragment 实现底部弹出 dialog
- Android自定义View之实现流行的底部菜单栏中间突起:高仿“咸鱼APP”的底部菜单。
- 实现底部弹出菜单
- android底部菜单实现
- TabHost实现底部菜单
- 底部滑动菜单实现
- Html5-底部菜单实现
- 十字链表 Orthogonal List
- Linux shell pushFileToRemoteServer.sh
- EventBus的使用和源码解析
- android 关于使用SharedPreferences来保存对象里既有属性又有集合的问题
- 1030. 完美数列
- DialogFragment实现右侧、中间、底部菜单
- LeetCode 136 Single Number
- LeetCode 423. Reconstruct Original Digits from English解题笔记
- JavaScript中的遍历详解
- Wiki引擎mediawiki
- 笔试知识点:c++中sizeof(空类)= 1
- 20170325_请说出成员函数的重载、覆盖和隐藏的区别与联系
- 归并排序(Merge Sort)+计算数列逆序数
- 装备选择