這個答案是對那些誰使用「Theme.AppCompat.Dialog」解決方法或任何其他「Theme.AppCompat.Dialog」後裔像「Theme.AppCompat.Light.Dialog」,「Theme.AppCompat.DayNight .Dialog「等。 我自己必須使用AppCompat對話框,因爲我使用AppCompatActivity作爲所有活動的延伸。如果我們使用接受的答案,會出現一個問題,使得對話框的每一邊都有填充(頂部,右側,底部和左側)。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}
您的活動的風格,添加這些代碼
<style name="DialogActivityTheme" parent="Theme.AppCompat.Dialog">
<item name="windowNoTitle">true</item>
<item name="android:windowBackground">@null</item>
</style>
正如你可能會注意到,產生填充到我們的對話框的問題是「機器人:windowBackground」,所以在這裏我使窗口背景空值。
有趣,注意: 當像素佈局容器的寬度和高度設置爲實際值,則對話框會相應調整大小但是,當它設置爲FILL_PARENT,那麼它不... – Matthias 2009-09-01 14:30:52
我有點解決了問題的解決方法,但由於這不是一個好的解決方案,我會留下這個問題。 我所做的是將LinearLayout子類化並覆蓋其onMeasure()方法,該方法負責在佈局週期中確定視圖的大小並將其修復爲屏幕寬度和高度。這是不正確的,因爲這沒有考慮到菜單欄佔用的空間,所以容器實際上比屏幕上看起來更高(所有奇怪的副作用像兒童都消失在不可見的區域屏幕)。 – Matthias 2009-09-04 08:16:58
我找到了正確的解決方案,請參閱下面的答案。 – Matthias 2009-11-07 17:08:34