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>
因爲我的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的樣子。
然後顯示就可以看到效果了。