คำตอบอื่น ๆ ทั้งหมดที่นี่สมเหตุสมผล แต่ก็ไม่เป็นไปตามที่เฟเบียนต้องการ นี่คือทางออกของฉัน มันอาจไม่ใช่วิธีที่สมบูรณ์แบบ แต่ใช้ได้สำหรับฉัน มันแสดงให้เห็นกล่องโต้ตอบที่อยู่ในแบบเต็มหน้าจอ แต่คุณสามารถระบุช่องว่างภายในด้านบนด้านล่างซ้ายหรือขวา
ก่อนอื่นให้วางสิ่งนี้ลงใน res / values / styles.xml ของคุณ:
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/Black0Percent</item>
<item name="android:paddingTop">20dp</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowIsFloating">false</item>
</style>
อย่างที่คุณเห็นฉันมีAndroid: paddingTop = 20dpนั้นเป็นสิ่งที่คุณต้องการ หุ่นยนต์: windowBackground = @ สี / Black0Percentเป็นเพียงรหัสสีประกาศ color.xml ของฉัน
ความละเอียด / ค่า / color.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="Black0Percent">#00000000</color>
</resources>
รหัสสีนั้นทำหน้าที่เสมือนตัวแทนเพื่อแทนที่พื้นหลังหน้าต่างเริ่มต้นของกล่องโต้ตอบด้วยสีโปร่งใส 0%
ถัดไปสร้างเค้าโครงไดอะล็อกที่กำหนดเอง res / layout / dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/dialoglayout"
android:layout_width="match_parent"
android:background="@drawable/DesiredImageBackground"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/edittext1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textSize="18dp" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Dummy Button"
android:textSize="18dp" />
</LinearLayout>
สุดท้ายนี่คือกล่องโต้ตอบของเราที่ตั้งค่ามุมมองที่กำหนดเองซึ่งใช้ dialog.xml ของเรา:
Dialog customDialog;
LayoutInflater inflater = (LayoutInflater) getLayoutInflater();
View customView = inflater.inflate(R.layout.dialog, null);
// Build the dialog
customDialog = new Dialog(this, R.style.CustomDialog);
customDialog.setContentView(customView);
customDialog.show();
สรุป:ฉันพยายามแทนที่ธีมของไดอะล็อกในสไตล์.xmlชื่อ CustomDialog มันแทนที่เค้าโครงหน้าต่างไดอะล็อกและให้โอกาสฉันในการตั้งช่องว่างภายในและเปลี่ยนความทึบของพื้นหลัง มันอาจไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่ฉันหวังว่ามันจะช่วยคุณได้ :)