DialogFragment宽度设置
来源:互联网 发布:linux查看本地arp缓存 编辑:程序博客网 时间:2024/06/07 02:56
百度了很久 , 做一个问题的总结 , 项目中原来的dialog用得好好的 , 有时间重构代码 , 就把项目中的自定义dialog , 换成DialogFragment了 , 结果遇到设置宽度的问题.
原来在dialog中的代码:
public ProfessionDialog(Context context, String[] dataArr, TextView tv_selection) {
super(context, R.style.self_profession_dialog);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog_profession_job);
// 取消标题栏
// 在style里面进行设置
// 设置dialog宽度 , 屏幕的0.7
Window dialogWindow = getWindow();
dialogWindow.setBackgroundDrawableResource(android.R.color.transparent);// 取消黑色边框
Display display = dialogWindow.getWindowManager().getDefaultDisplay();
LayoutParams params = getWindow().getAttributes();
params.width = (int) (display.getWidth() * 0.7);
dialogWindow.setAttributes(params);
setCanceledOnTouchOutside(true);
init();
}
虽然用的是过时的api , 但是 , 0.7的宽度是实现了.
到了DialogFragment , 在三个生命周期的方法里面 , 加入不同的代码.
@Override
public void onStart() {
super.onStart();
// DisplayMetrics dm = new DisplayMetrics();
// getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
// getDialog().getWindow().setLayout((int) (dm.widthPixels * 0.5),
// getDialog().getWindow().getAttributes().height);
Window window = getDialog().getWindow();
WindowManager windowManager = window.getWindowManager();
Display ds = windowManager.getDefaultDisplay();
LayoutParams attributes = window.getAttributes();
attributes.width = (int) (ds.getWidth() * 0.7);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NO_TITLE, R.style.confirm_dialog_fragment);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.confirm_dialog_frament, container, false);
return view;
}
折腾了好一会儿 , 之前把设置宽度的代码 , 都放在onCreateView()里面 , 现在把代码放到下一个生命周期里面就生效了 , 还是对api不熟悉 , 还得多看看源码才行 . 最后还有style的设置 , 设置了一下背景.
<style name="confirm_dialog_fragment" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@drawable/backgroud_3dp</item>
</style>
.
- DialogFragment宽度设置
- DialogFragment宽度问题处理
- 自定义DialogFragment宽度
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- Android 自定义 DialogFragment 宽度问题
- android DialogFragment 设置大小
- DialogFragment style设置
- DialogFragment设置自定义动画
- DialogFragment style设置
- DialogFragment设置不可取消
- DialogFragment 设置全屏方法
- DialogFragment设置全屏方法
- 给DialogFragment设置样式
- Android之DialogFragment宽度充满屏幕
- v4.DialogFragment设置宽高
- DialogFragment设置Cancelable(false)不起作用
- Could not resolve all dependencies for configuration ':XXX:_debugCompile'
- django--模板的继承
- python 迭代器与生成器
- android 防止Button的频繁点击,多次执行点击事件
- android studio 快捷键大全
- DialogFragment宽度设置
- git 版本工具使用中踩过的坑 回退版本
- android studio中引入volley库,import HttpClient cannot be resolved
- 使用Http协议访问网络—使用HttpURLConnection
- JavaScript函数基础分之图解
- Android API Guides----Adding Custom Suggestions
- python中的赋值操作,与c++做对比
- POJ 1475
- C#—抽象类使用及方法重写与重载