android – Popup(使用PopupWindow或Dialog)填充屏幕的宽度没有明显的原因

我想要弹出一个表现! =)

问题是弹出窗口“填充整个屏幕的宽度”,即使布局清楚地表明它应该“wrap_content”.如果我使用Dialog或PopupWindow无关紧要.

首先,弹出窗口的XML布局,popup_message.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_margin="20dp"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="horizontal"
        android:layout_gravity="center" >

        <TextView
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center"
            android:background="@android:color/transparent"
            android:gravity="center_vertical|center_horizontal"
            android:orientation="horizontal"
            android:paddingLeft="10dp"
            android:text="@string/new_message"
            android:textColor="#000000"
            android:textAllCaps="true" >

        </TextView>
    </LinearLayout>

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="15dp"
        android:background="#ffffff"
        android:gravity="center_horizontal"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/popup_message_textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textCursorDrawable="@null" >
        </TextView>

        <Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
            android:layout_height="35dp"
            android:layout_below="@+id/popup_message_textView"
            android:layout_gravity="center_vertical|center_horizontal"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="15dp"
            android:gravity="center_horizontal"
            android:text="Confirm"
            android:textColor="#000000" />
    </RelativeLayout>
</LinearLayout>

我正在使用的代码:

LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View input = inflater.inflate(R.layout.popup_message,null);
PopupWindow pw = new PopupWindow(input,LayoutParams.WRAP_CONTENT,true);
View v = findViewById(R.id.main_deviceInfoBar);
pw.showAtLocation(v,Gravity.CENTER,0);

我也试过这个:

Dialog dialogManualStart = new Dialog(MainActivity.this);
.dialogManualStart.getWindow()setBackgroundDrawableResource(R.color.transparent);
dialogManualStart.requestWindowFeature(MainActivity.this.getWindow()FEATURE_NO_TITLE.);
dialogManualStart.setContentView(输入);
dialogManualStart.show();

它总是,无论我使用什么代码,看起来像这样:

如您所见,它总是填满屏幕的宽度.

问题:谁能告诉我为什么?

========编辑1 =============

我将Button更改为“wrap_content”(根据Boogers的建议),然后它看起来像这样:

这是非常奇怪的行为,而不是我的预期.

如果我将其更改为“match_parent”,则将其更改为“full width”,即它从左向右延伸.

解决方法

这是你的问题:
<Button
            android:id="@+id/jobview_pickup_start_submit"
            android:layout_width="fill_parent"
...

将其从“fill_parent”更改为“wrap_content”或“match_parent”

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...