アンドロイドのLinearLayout全体のレイアウトの設定がクリックされていません

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_horizo​​ntal"
アンドロイド:の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)。
}
}
}
--------------------- 

おすすめ

転載: www.cnblogs.com/ly570/p/10992444.html