私のアプリには2つのPopupWindowsがあり、それらは交差します。今は別のPopupWindowで表示しているPopupWindowを管理したいと思っています。これはZ軸を意味します。これのための任意のアイデア? 次の画像が表示されます。別のPopupWindowに表示されるPopupWindowを設定する方法
と
私のアプリには2つのPopupWindowsがあり、それらは交差します。今は別のPopupWindowで表示しているPopupWindowを管理したいと思っています。これはZ軸を意味します。これのための任意のアイデア? 次の画像が表示されます。別のPopupWindowに表示されるPopupWindowを設定する方法
と
あり最初PopupWindowがあり、第二PopupWindowを示し、このPopupWindow上のTextViewをクリックしてください。
PopupWindow mPop,mPop2;
/**
* show first popupWindow
*/
private void popupWindow(final View vi) {
View view = LayoutInflater.from(this).inflate(R.layout.pop, null);
TextView tv = (TextView) view.findViewById(R.id.tv1);
//click show second one
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow2(vi);
}
});
if (null == mPop) {
mPop = new PopupWindow(view);
}
mPop.setHeight(294);
mPop.setWidth(200);
mPop.setFocusable(true);
mPop.setOutsideTouchable(true);
mPop.setBackgroundDrawable(new ColorDrawable(0));
mPop.showAtLocation(vi, Gravity.CENTER | Gravity.CENTER, 22,
22);
mPop.update();
}
/**
* show second popupWindow
*/
private void popupWindow2(View v) {
View view = LayoutInflater.from(this).inflate(R.layout.pop2, null);
if (null == mPop2) {
mPop2 = new PopupWindow(view);
}
mPop2.setHeight(294);
mPop2.setWidth(200);
mPop2.setFocusable(true);
mPop2.setOutsideTouchable(true);
mPop2.setBackgroundDrawable(new ColorDrawable(0));
mPop2.showAtLocation(v, Gravity.CENTER | Gravity.CENTER, 42,
42);
mPop2.update();
}
あなたの答えをありがとう、これはpopupwindowのための通常の順序ですが、もし私が最初のものを2番目のものよりも上にしたいのであれば、最初のもののshow()を思い出すべきですか?私はこれをやりたいとは思っていません。私は、あるポップアップウィンドウを他のものよりも上手に扱うためのアイデアがあるかどうかを知りたいだけです。 – jiabao
私が知る限り、最新のポップアップは常に古いものを引き出します。 'PopupWindow'は' setElevation'メソッドを持っています。しかしAPI 21に追加されました。 –
私はsetElevation()を使用しましたが、機能しませんでした。 – jiabao
新しいポップアップで 'show()'を呼び出した後に、以前のポップアップで 'show()'を呼び出そうとしているかもしれません。 –