我想要弹出一个表现! =)
问题是弹出窗口“填充整个屏幕的宽度”,即使布局清楚地表明它应该“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”