我有一个包含以下内容的 android XML 文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relLay"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/ivQuit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/imgquit"
android:background="@null"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
<ImageButton
android:id="@+id/btnYes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btnyes"
android:background="@null"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
<ImageButton
android:id="@+id/btnNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btnno"
android:background="@null"
android:adjustViewBounds="true"
android:scaleType="fitXY"/>
</RelativeLayout>
现在我想给它充气,然后通过代码编辑 ImageButtons。我这样做如下:
膨胀 XML:
LayoutInflater inflater = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.quitgame, null);
尝试编辑 ImageButton:
ImageView imgView = (ImageView)findViewById(R.id.ivQuit);
ImageButton imgBtnYes = (ImageButton)findViewById(R.id.btnYes);
ImageButton imgBtnNo = (ImageButton)findViewById(R.id.btnNo);
RelativeLayout.LayoutParams relParams = (RelativeLayout.LayoutParams)imgBtnYes.getLayoutParams();
relParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
imgBtnYes.setLayoutParams(relParams);
但是,只要存在 LayoutParams 的三个代码行,我使用膨胀视图创建的 PopupWindow 就不会出现。似乎错误隐藏在这一行中
RelativeLayout.LayoutParams relParams = (RelativeLayout.LayoutParams)imgBtnYes.getLayoutParams();
但我不明白为什么。
谁能告诉我为什么 PopupWindows 由于此代码行而没有出现?是因为 PopupWindow 本身还是因为 LayoutInflater?