我正在嘗試在Android中生成自定義對話框。我這樣創建對話框:dialog = new Dialog(this);dialog.setContentView(R.layout.my_dialog);除了對話框的標題,一切都正常。即使我沒有設置對話框的標題,對話框的彈出窗口在對話框的位置也會有一個空格。有什么辦法可以隱藏對話框的這一部分嗎?我用AlertDialog嘗試過,但似乎布局設置不正確:LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = inflater.inflate(R.layout.map_dialog, null);AlertDialog.Builder builder = new AlertDialog.Builder(this);builder.setView(view);// dialog = new Dialog(this);// dialog.setContentView(R.layout.map_dialog);dialog = builder.create();((TextView) dialog.findViewById(R.id.nr)).setText(number);如果使用此代碼,則在最后一行中將獲得空的Pointer Exception。該對話框不為null,因此我嘗試檢索的TextView不存在。如果取消注釋使用“對話框構造器”的部分,則一切正常,但對話框布局上方的標題除外。
3 回答

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
從頭開始創建對話框時,FEATURE_NO_TITLE可以工作,如下所示:
Dialog dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
但是在創建AlertDialog(或使用Builder)時它不起作用,因為它已禁用標題并在內部使用自定義標題。
我看過SDK的來源,但我認為它無法解決。因此,要刪除頂部間距,唯一的解決方案是直接使用Dialog類從頭開始創建IMO自定義對話框。
同樣,可以使用一種樣式來做到這一點,例如在styles.xml中:
<style name="FullHeightDialog" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
</style>
接著:
Dialog dialog = new Dialog(context, R.style.FullHeightDialog);
- 3 回答
- 0 關注
- 460 瀏覽
添加回答
舉報
0/150
提交
取消