1、XMLレイアウトのアクティビティ(レイアウトはボタンのボタンがあり、ボタンがpopupwindowをポップアップ表示]をクリック)
<?xmlのバージョンは、= "1.0"エンコード= "UTF-8"?>
<のLinearLayoutのxmlns:アンドロイド= "http://schemas.android.com/apk/res/android"
のxmlns:ツール= "のhttp://スキーマ.android.com /ツール"
アンドロイド:layout_width = "match_parent"
のandroid:layout_height = "match_parent"
:描画可能/ ic_launcher_background @アンドロイド背景= ""
ツール:コンテキスト=" MainActivity。 ">
<ボタン
アンドロイド:layout_width =" match_parent」
アンドロイド:layout_height = "wrap_content"
アンドロイド:重力= "center_horizontal"
アンドロイド:のonClick = "クリック"
のandroid:TEXTSIZE = "30sp"
アンドロイド:テキスト= "弹窗Popupwindow" />
</のLinearLayout>
図2は、XMLレイアウト上の図は、白い背景をpopupwindow。
<?xml version = "1.0"エンコード= "UTF-8"?>
<のLinearLayoutのxmlns:アンドロイド= "http://schemas.android.com/apk/res/android"
アンドロイド:layout_width = "match_parent"
アンドロイド:layout_height = "match_parent"
アンドロイド:重力= "センター"
アンドロイド:ID = "@ + ID / ll_popup">
<のLinearLayout
アンドロイド:ID = "@ + ID / ll_popup_content"
アンドロイド:layout_width = "600dp"
アンドロイド:layout_height = "400dp"
アンドロイド:重力= "センター"
アンドロイド:バックグラウンド= "@アンドロイド:色/白">
<ImageViewのの
アンドロイド:layout_width = "0dp"
アンドロイド:layout_weight = "1"
アンドロイド:layout_height = "250dp"
アンドロイド:パディング= "10dp"
アンドロイド:SRC = "@の描画可能/ fengjing"
アンドロイド:layout_marginRight = "20dp" />
<ImageViewのの
アンドロイド:layout_width = "0dp"
アンドロイド:layout_weight = "1"
のandroid:layout_height = "250dp"
アンドロイド:パディング= "10dp"
アンドロイド:SRC = "@小/描画可能" />
</のLinearLayout>
</のLinearLayout>
3、MainActivity的代码实现:
パブリッククラスMainActivityはAppCompatActivity {拡張
プライベートビューポップ。
民間のLinearLayoutのll_popup、ll_popup_content。
@Override
ボイドのonCreate(バンドルsavedInstanceState){保護
super.onCreate(savedInstanceState)。
setContentView(R.layout.activity_main)。
ポップ= View.inflate(この、R.layout.popupwindow_test、NULL);
ll_popup = pop.findViewById(R.id.ll_popup)。
ll_popup_content = pop.findViewById(R.id.ll_popup_content)。
ll_popup_content.setOnClickListener(NULL); // Linearloyout就不可点击了
}
公共ボイドクリック(ビュービュー){
最終PopupWindow popupWindow =新しいPopupWindow(ポップ、MATCH_PARENT、MATCH_PARENT)。
ll_popup.setOnClickListener(新しいView.OnClickListener(){
@Override
ます。public void onClickの(ビューV){
popupWindow.dismiss();
}
})。
popupWindow.showAtLocation(は、GetWindow()getDecorView()、Gravity.TOP、0,0)。
}
@Override
onWindowFocusChanged公共ボイド(ブールhasFocus){
//完全沉浸式
super.onWindowFocusChanged(hasFocus)。
IF(hasFocus && Build.VERSION.SDK_INT> = 19){
ビューdecorView =は、GetWindow().getDecorView(http://www.my516.com)。
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)。
}
}
}
---------------------