Popupwindowの基本的な使い方
1787 ワード
Popupwindowの基本的な使い方
本文はpopupwindowの基本的な使い方、位置、大きさの設定といくつかの特殊な情況を含みます本文はKotlinを使います
一般的な使い方
上記のコードでは、popupの位置を設定する際に小さな問題が発生します.popupのxのオフセット量を設定した後も、変わりません.次に例を挙げます:図のように私のpopupは"+"号に対して位置を設定して、コードは以下の
以上がpopupを表示する2つの方法です
本文はpopupwindowの基本的な使い方、位置、大きさの設定といくつかの特殊な情況を含みます本文はKotlinを使います
一般的な使い方
//
val view = layoutInflater.inflate(R.layout.main_menu_popup, null)
// :1、 2、 3、
val popup = PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT
, ViewGroup.LayoutParams.WRAP_CONTENT)
// : popup popup
popup.setBackgroundDrawable(resources.getDrawable(R.drawable.dropdown))
popup.isFocusable = true
//
popup.isOutsideTouchable = true
popup.update()
val main_menu_over = findViewById(R.id.main_menu_over)
// popup , :1、popup main_menu_over 2、 3、x dp 4、y dp
// popup.showAsDropDown(main_menu_over, -view.measuredWidth - 2, 10,Gravity.NO_GRAVITY)
popup.showAsDropDown(main_menu_over, -view.measuredWidth - 2, 10)
上記のコードでは、popupの位置を設定する際に小さな問題が発生します.popupのxのオフセット量を設定した後も、変わりません.次に例を挙げます:図のように私のpopupは"+"号に対して位置を設定して、コードは以下の
popup.showAsDropDown(main_menu_over, - 2, 10)
私はxオフセット量を設定したのに2どうして移動しなかったのですか?「+」は右端にあり、popupのデフォルトは「+」の右下隅座標に対してオフセット量を設定するため、popupの実際の位置は、popupの左枠と画面の右側が重なることです.下の図のように赤い部分(絵があまりできないので、下を見てみます)は私自身が理解しています.間違いがあれば指摘してください.「popupwindowは常に画面に表示されます」.この原因は、ソースコードを見てから、説明しましょう.上記の理由で見たポップは一番右側にあります.このような場合、xオフセット量にpopup自体の幅を加える必要があります.左へ移動マイナス右へ移動プラス//popupコントロールval main_menu_over = findViewById (R.id.main_menu_over)
popup.showAsDropDown(main_menu_over, -view.measuredWidth -2, 10)
//
popup.showAsDropDown(main_menu_over, -xDis, 5, Gravity.NO_GRAVITY)
//
//popup.showAtLocation(main_menu_over, Gravity.RIGHT, -118 - 5, 5)
以上がpopupを表示する2つの方法です