Windows 7,Android Studio 1.1.0,编译SDK 21,三星Galaxy Core(SDK 14)。
我正在设计一个几乎没有字段的表单作为对话框填写,但我有足够的空白空间,我无法摆脱。使用TableLayout安排它。我在xml代码中跳过了一些不相关的字段,但所有与布局相关的字段都在那里。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="@dimen/margin_small"
android:background="@color/HellTeal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TableRow>
<TextView/>
<EditText/>
</TableRow>
<TableRow>
<TextView/>
<Spinner
android:layout_width="0dp"
android:layout_weight="1"/>
<Spinner
android:layout_width="0dp"
android:layout_weight="1"/>
</TableRow>
<TableRow>
<TextView/>
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
<TableRow>
<Button
android:layout_width="0dp"
android:layout_weight="1"/>
<Button
android:layout_width="0dp"
android:layout_weight="1"/>
</TableRow>
</TableLayout>
预览时一切都很好(抱歉这个颜色,它设置为显示空间)。
不幸的是,它在现实中看起来不同。当我将它用作对话框布局时,这会占用更多空间。代码创建最大限度简化的对话框,因此它不是一些奇怪的声明。 AlertDialog和DialogFragment中分别有这种布局的屏幕。请注意,第二种情况下额外空间的颜色是多少,很奇怪。
我注意到额外空间的数量在某种程度上取决于内容。它甚至可以等于0.看看这个比较(我没有改变任何一个布局):
如果我没有为视图设置任何内容(onClickListeners,适配器等),我注意到我的布局正确显示。所以我开始制作尽可能简单的类,然后添加适当的行。我发现在我的情况下迫使这个空间的东西是旋转器。两者对项目使用完全相同的数组。我注意到所选项目越长,所采取的空间就越大。似乎可能是一些阻止跨越屏幕边框的机制,因为右侧微调器会更多地影响对话框。左边必须像7-8个字符才能改变对话框的大小
我尝试了什么:
答案 0 :(得分:1)
似乎你在表格布局中拥有所需的一切,甚至是ok和cancel按钮。我建议你使用AlertDialog。但是,不要在构建器中设置按钮和标题。创建警报后也设置视图。请尝试以下代码
AlertDialog.Builder builder = new AlertDialog.Builder(this);
//you won't need yes no buttons because it is already containing in your layout
View view = getLayoutInflater().inflate(R.layout.aaa_test, null);
AlertDialog aler=builder.create();
alert.setView(view,0,0,0,0);
alert.show();