我为这个问题找到了许多解决办法,但没有一个对我有用。我想在片段中显示一个PopupWindow。这是我的密码
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
View popupView = layoutInflater.inflate(R.layout.pop_up_cargando, null,false);
this.popupWindow = new PopupWindow(popupView, popupView.getWidth(),popupView.getHeight());
this.popupWindow.setFocusable(true);
int location[] = new int[2];
this.btnInventario.getLocationOnScreen(location);
this.popupWindow.showAtLocation(this.btnInventario, Gravity.NO_GRAVITY, location[0], location[1] + btnInventario.getHeight()); // this.btnInventario is the button that calls this code
this.popupWindow.update(0, 0, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);但是PopupWindow从来没有出现过。
编辑:这是pop_up_cargando的内容
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/popup_recomendar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="vertical" >
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:id="@+id/cargando"/>
<TextView
android:id="@+id/txtTexto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginBottom="20dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_gravity="center"
android:text="@string/vacio"
android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>有什么建议吗?我做错什么了?非常感谢你的帮助。
发布于 2014-10-02 17:18:05
您的popupView.getWidth()和popupView.getHeight()值等于0,因为尚未绘制视图。
在询问视图的宽度和高度之前,您必须确保已经绘制了它。为此,您可以在以下方法充气后调用它:
popupView.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);在此之后,您的视图的大小可以使用getMeasuredWidth()和getMeasuredHeight()方法。
https://stackoverflow.com/questions/26165111
复制相似问题