为什么 AlertDialog.Builder 自定义布局 (Tablelayout) 显示半空对话框
Why AlertDialog.Builder for custom layout (Tablelayout) showing half empty dialog
我在 alertDialog 中使用自定义布局,但问题是它在半屏中显示我的布局文件的内容,而另一半只是空白 -(我不知道这个黑色部分从何而来), 我想去掉对话框的空白部分。
如有任何建议或帮助,我们将不胜感激。
我的alterDialog代码
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.dialog_layout, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
布局 dialog_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/background_dark">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="1dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="1dp"
android:text="SCAN ASSEMBLY"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="Scan job"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/lot_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Scan assembly"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/product_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Job quantity"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/lot_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Prod. time (hrs)"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/time_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Prod. date"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/date_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="Prod. shift"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/shift_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
</TableLayout>
输出为:
嗯,我想通了。感谢 Khizar 和 Arthem Chauzov 的帮助评论。
我只是做了一个小改动,因为 table layout
继承自 LinearLayout
。我只是为我的行内容设置 android:layout_width="0dp" and android:layout_weight="1"
。现在它按要求工作:)
我在 alertDialog 中使用自定义布局,但问题是它在半屏中显示我的布局文件的内容,而另一半只是空白 -(我不知道这个黑色部分从何而来), 我想去掉对话框的空白部分。
如有任何建议或帮助,我们将不胜感激。
我的alterDialog代码
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.dialog_layout, null);
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(view);
布局 dialog_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/background_dark">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="1dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="1dp"
android:text="SCAN ASSEMBLY"
android:textAppearance="?android:attr/textAppearanceLarge" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="Scan job"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/lot_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Scan assembly"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/product_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Job quantity"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/lot_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Prod. time (hrs)"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/time_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_marginRight="8dp"
android:text="Prod. date"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/date_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="Prod. shift"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/dark_text_color" />
<TextView
android:id="@+id/shift_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="2342wt"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/light_black_text_color" />
</TableRow>
</TableLayout>
输出为:
嗯,我想通了。感谢 Khizar 和 Arthem Chauzov 的帮助评论。
我只是做了一个小改动,因为 table layout
继承自 LinearLayout
。我只是为我的行内容设置 android:layout_width="0dp" and android:layout_weight="1"
。现在它按要求工作:)