Android 開發 PopupWindow彈窗

簡介

  PopupWindow,顧名思義彈窗.PopupWindow是與AlertDialog在形式上類似的彈窗功能,都是為了在activity最上層顯示一個彈窗.但是區別是PopupWindow可以自定義出現的位置,並且可以添加入自己需要的View或者導入自己寫好的xml佈局

應用場景

  在很多場景下都可以見到它。例如ActionBar/Toolbar的選項彈窗,一組選項的容器,或者列表等集合的窗口等等。

簡單的Demo

  為了瞭解基本的流程,我們來一個最簡單demo演示一下.

  創建流程:

  • 用LayoutInflater獲得xml佈局View .或者直接在代碼上new一個View
  • 實例化一個PopupWindow,將View在實例化作為參數傳入
  • 配置PopupWindow參數

從項目中粘貼出來的代碼:

<code>private void initView() {
mPopupWindow = buildPopWindow();
mTvChoice = ((TextView) findViewById(R.id.tv_choice));
}

private PopupWindow buildPopWindow() {
View view = ResourcesUtils.findViewById(this, R.layout.pop_setting1); //加載佈局
final PopupWindow popupWindow = new PopupWindow(view, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //參數為1.View 2.寬度 3.高度
popupWindow.setBackgroundDrawable(new BitmapDrawable());
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);//點擊其他區域關閉popupWindow
view.findViewById(R.id.tv_environment_kaifa).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mEtAddressVideo.setText("mvideo.test.cebbank.com");
mEtPortVideo.setText("3000");

mEtPortText.setText("9003");
mEtAddressFile.setText("https://111.205.51.132:9000");
mTvChoice.setText("自定義環境");
environmentType = 1;
IMCoreInit.IP_TYPE=1;

popupWindow.dismiss();

}
});
return popupWindow;
}/<code>
Android 開發 PopupWindow彈窗


分享到:


相關文章: