【发布时间】:2016-09-27 14:26:39
【问题描述】:
我使用 XML 布局文件创建了一个 android 对话框,如下所示:
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.enabledialog);
dialog.setTitle("Define message keys and setup");
Switch locationSwitch = (Switch) dialog.findViewById(R.id.locationSwitch);
Switch blareSwitch = (Switch) dialog.findViewById(R.id.blareSwitch);
final EditText locationEdit = (EditText) dialog.findViewById(R.id.locationEdit);
final EditText blareEdit = (EditText) dialog.findViewById(R.id.blareEdit);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
dialog.show();
dialog.getWindow().setAttributes(lp);
但是,我的 XML 文件的内容只占屏幕的一半,所以当我显示对话框时,我显示了额外的空间,这看起来不太好:
这里是对话框外观的草图 (R.layout.enabledialog):
如何修剪这个多余的空间?在 android studio 中,布局编辑器假设 XML 文件占据整个屏幕,但实际上,我只想要一个小弹出窗口。
谢谢,
鲁基尔
编辑:这是我的布局资源文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#1dd1e9">
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/locationSwitch"
android:layout_marginTop="46dp"
android:checked="false"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Blah"
android:id="@+id/textView"
android:textSize="30sp"
android:layout_alignTop="@+id/locationSwitch"
android:layout_centerHorizontal="true"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Blah Blah Blah"
android:id="@+id/textView2"
android:gravity="center"
android:textSize="20sp"
android:layout_below="@+id/locationSwitch"
android:layout_centerHorizontal="true"
/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/locationEdit"
android:layout_below="@+id/textView2"
android:layout_alignLeft="@+id/textView"
android:layout_alignStart="@+id/textView"
android:layout_alignRight="@+id/textView"
android:layout_alignEnd="@+id/textView"
android:singleLine = "true"
android:imeOptions="actionDone" />
<Switch
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/blareSwitch"
android:layout_marginTop="40dp"
android:checked="false"
android:layout_below="@+id/locationEdit"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Blah"
android:id="@+id/textView3"
android:textSize="30sp"
android:layout_alignBottom="@+id/blareSwitch"
android:layout_centerHorizontal="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Blah Blah Blah"
android:id="@+id/textView4"
android:textSize="20sp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/blareEdit"
android:layout_below="@+id/textView4"
android:layout_alignLeft="@+id/locationEdit"
android:layout_alignStart="@+id/locationEdit"
android:layout_alignRight="@+id/locationEdit"
android:layout_alignEnd="@+id/locationEdit"
android:singleLine = "true"
android:imeOptions="actionDone" />
</RelativeLayout>
【问题讨论】:
-
请发布布局资源文件。您可能还希望在 Java 代码中将
MATCH_PARENT更改为WRAP_CONTENT。 -
@CommonsWare 已编辑 :)
-
@CommonsWare 我实际上在
MATCH_PARENT有它,因为当它是WRAP_CONTENT时,内容重叠并且不合适。
标签: java android xml string performance