Ruc*_*nia 10 java xml string performance android
我使用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);
Run Code Online (Sandbox Code Playgroud)
但是,我的XML文件的内容只占用屏幕的一半,所以当我显示对话框时,我显示额外的空间,这看起来不太好看:
如何修剪这个额外的空间?在android studio中,布局编辑器假设XML文件占据整个屏幕,但实际上,我只想要一个小的弹出窗口.
谢谢,
Ruchir
编辑:这是我的布局资源文件:
<?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>
Run Code Online (Sandbox Code Playgroud)
尝试在您的 root 中更改fill_parent为,以及在您的 Java 代码中更改为(或删除整个位)。wrap_contentRelativeLayoutMATCH_PARENTWRAP_CONTENTsetAttributes()
我实际上是在 MATCH_PARENT 处使用它的,因为当它是 WRAP_CONTENT 时,内容重叠并且不正确匹配
那么这是您需要解决的一个单独的问题。首先让对话框大小大致达到您想要的大小。然后,使用一些检查工具(AS 2.2 中的新工具、层次结构视图uiautomatorviewer等)开始弄清楚如何修复布局以避免重叠。