Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SDK 23中的对话框小于SDK 22中的对话框_Android_Android Dialog - Fatal编程技术网

Android SDK 23中的对话框小于SDK 22中的对话框

Android SDK 23中的对话框小于SDK 22中的对话框,android,android-dialog,Android,Android Dialog,我有一个应用程序,使用两个按钮和一个数字选择器。使用SDK 22运行模拟器时,一切正常,但在运行SDK 23时,对话框明显较小,并且不包括最左边的按钮。 以下是对话框的xml: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_

我有一个应用程序,使用两个按钮和一个数字选择器。使用SDK 22运行模拟器时,一切正常,但在运行SDK 23时,对话框明显较小,并且不包括最左边的按钮。 以下是对话框的xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="match_parent"
android:layout_height="match_parent">
<NumberPicker
    android:id="@+id/numberPicker1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="64dp" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/numberPicker1"
    android:layout_marginLeft="20dp"
    android:layout_marginTop="98dp"
    android:layout_toRightOf="@+id/numberPicker1"
    android:text="Cancel" />

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/button2"
    android:layout_alignBottom="@+id/button2"
    android:layout_marginRight="16dp"
    android:layout_toLeftOf="@+id/numberPicker1"
    android:text="Set" />
</RelativeLayout>
final Dialog d = new Dialog(MainActivity.this);
d.setTitle("Delay");
d.setContentView(R.layout.dialog);

Button b1 = (Button) d.findViewById(R.id.button1);
Button b2 = (Button) d.findViewById(R.id.button2);

final NumberPicker np = (NumberPicker) d.findViewById(R.id.numberPicker1);
np.setMaxValue(100);
np.setMinValue(0);
np.setWrapSelectorWheel(false);

b1.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        changeDelay(np.getValue(), user);
        d.dismiss();
    }
});

b2.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        d.dismiss();
    }
});

d.show();
请尝试以下布局:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <NumberPicker
        android:id="@+id/numberPicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="64dp"
        android:layout_marginBottom="98dp"/>

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/numberPicker1"
        android:layout_alignParentRight="true"
        android:text="Cancel" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/numberPicker1"
        android:layout_alignParentLeft="true"
        android:text="Set" />
</RelativeLayout>

一些问题包括:

android:layout_alignBottom将导致RelativeLayout扩展到屏幕底部。这不利于对话。您可以找到详细信息

你定义了一些巨大的利润。您在横向模式下的对话框显示不正确。。。有些内容被隐藏了


但我不确定为什么它在API 22上工作正常,而在API 23上工作正常

请确保您的两个模拟器具有相同的屏幕特性(分辨率和模拟密度)。除此之外,请使用层次结构查看器查看按钮的位置。由于某些原因,我无法在模拟设备上运行层次结构查看器。但是这两个模拟器应该具有相同的屏幕特征,它们是同一部手机,只是使用不同的软件。我很确定这个按钮没有显示出来,因为sdk 23手机上的对话框因为某种原因变小了,但是我找不到任何原因。