我试图弹出一个行为! =)
问题是,即使布局明确指出应该“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, LayoutParams.WRAP_CONTENT, true);
View v = findViewById(R.id.main_deviceInfoBar);
pw.showAtLocation(v, Gravity.CENTER, 0, 0);
我也尝试过这个:
对话框dialogManualStart =新对话框(MainActivity.this);
dialogManualStart.getWindow()。setBackgroundDrawableResource(R.color.transparent);
dialogManualStart.requestWindowFeature(MainActivity.this.getWindow()。FEATURE_NO_TITLE);
dialogManualStart.setContentView(input);
dialogManualStart.show();
而且无论我使用什么代码,它总是看起来像这样:
如您所见,它始终填充屏幕的宽度。
问题:谁能告诉我为什么?
========编辑1 =============
我将“按钮”更改为“wrap_content”(根据Boogers的建议),然后看起来像这样:
这是非常奇怪的行为,不是我所期望的。
如果我将其更改为“match_parent”,则将其更改回“全宽”,即,它从左到右一直延伸。
最佳答案
这是你的问题:
<Button
android:id="@+id/jobview_pickup_start_submit"
android:layout_width="fill_parent"
...
将其从“fill_parent”更改为“wrap_content”或“match_parent”