Android dialog显示在界面固定位置
dialog界面背景为全透明的情况 设置这个样式就可以让dialog的背景为全透明。
<!-- 显示景区信息 -->
<style name="dialog_map_content" parent="@android:style/Theme.Holo.Light.Dialog">
<item name="android:windowFrame">@color/transparent</item><!-- 边框 -->
<item name="android:windowIsFloating">true</item><!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">false</item><!-- 半透明 -->
<item name="android:windowNoTitle">true</item><!-- 无标题 -->
<item name="android:windowBackground">@color/transparent</item><!-- 自己想要的背景 -->
<item name="android:backgroundDimEnabled">false</item><!-- 模糊 -->
</style>
在这里加载我们自定义的dialogStyles
public LoadingDialig(Context context, String s) {
super(context,R.style.dialog_map_content); // 界面全透明
// super(context); // 有半透明背景
content = s;
mContext = context;
}
因为我的dialog显示在界面中的类型列表之下10dp的样子。
Window dialogWindow = getWindow();
WindowManager.LayoutParams lp = dialogWindow.getAttributes();
lp.gravity = Gravity.TOP; // 设置重力
lp.y = DpUtil.dp2px(mContext,110);
lp.width= WindowManager.LayoutParams.MATCH_PARENT;
dialogWindow.setAttributes(lp);
所以根据我的布局计算出当前类型列表和之上有多少dp,将dp转化成px,设置给WindowManager.LayoutParams的y这样就相当于设置了margintop的样子。
然后显示就可以看到效果了。