青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

由AlertDialog想到的PhoneWindow, Dialog的覆蓋問題

在同一個窗口中,可以同時有多個AlertDialog,但是他們之間相互覆蓋,最后show()的那個在最上面,Why?

代碼如下:

  1. new AlertDialog.Builder(SpinnerTestActivity.this).setTitle("One").setMessage("one")  
  2.                       .setNegativeButton("button", new DialogInterface.OnClickListener(){  
  3.                         public void onClick(DialogInterface dialoginterface, int i){  
  4.               
  5.                         }  
  6.                 }).show();  
  7.                   
  8. new AlertDialog.Builder(SpinnerTestActivity.this).setTitle("TWO").setMessage("Two")  
  9.                 .setNegativeButton("button", new DialogInterface.OnClickListener(){  
  10.                     public void onClick(DialogInterface dialoginterface, int j){  
  11.                     }  
  12.                 }).show();  


答 : 每一個AlertDialog都會新建一個Window(該Window不添加到原窗口中),在該新Window中,創建這個AlertDialog,然 后取出該窗口的decorView,并將其加入到原窗口中,此時原窗口中存在兩個decorView,此時新來的decorView就覆蓋掉原來的 decorView,顯示在UI 上,因此,最后加入的decorView顯示在最上面
分析:查看源碼,在Dialog.class中
  1. public void show() {  
  2.       if (mShowing) {  
  3.           if (mDecor != null) {  
  4.               mDecor.setVisibility(View.VISIBLE);  
  5.           }  
  6.           return;  
  7.       }  
  8.   
  9.       if (!mCreated) {  
  10.           dispatchOnCreate(null);  
  11.       }  
  12.   
  13.       onStart();  
  14.       mDecor = mWindow.getDecorView();  
  15.       WindowManager.LayoutParams l = mWindow.getAttributes();  
  16.       if ((l.softInputMode  
  17.               & WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION) == 0) {  
  18.           WindowManager.LayoutParams nl = new WindowManager.LayoutParams();  
  19.           nl.copyFrom(l);  
  20.           nl.softInputMode |=  
  21.                   WindowManager.LayoutParams.SOFT_INPUT_IS_FORWARD_NAVIGATION;  
  22.           l = nl;  
  23.       }  
  24.   
  25.       try {  
  26.           mWindowManager.addView(mDecor, l);  
  27.           mShowing = true;  
  28.     
  29.           sendShowMessage();  
  30.       } finally {  
  31.       }  
  32.   }  

其中 mWindow 是在 構造函數 public Dialog(Context context, int theme) 中初始化 :

Window w = PolicyManager.makeNewWindow(mContext); 

 mWindow = w;

由此,在上面的show()代碼中,將從mWindow中的decorView加入到 原窗口中,覆蓋了原窗口中的decorView的顯示

本程序中,最后的顯示的窗口中,具有3個decorView(兩個存放Dialog, 一個存放原布局):mWindowManager - > mWindowManager - > mViews 



========================================================================================================================


在Hierarchy Viewer中,原先的窗口顯示的布局是:


其布局無關精要,主要有一個TextView,一個Spinner,一個 Button

show了AlertDialog之后,其布局為:

不難看出,原decorView被覆蓋了,顯示的是第二個Dialog

posted on 2013-01-13 04:03 大龍 閱讀(491) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品麻豆欧美日韩ww| 亚洲性视频网站| 免费一级欧美片在线观看| 欧美成人精品一区二区| 亚洲免费观看高清在线观看| 国产精品自拍小视频| 香蕉成人啪国产精品视频综合网| 免费看精品久久片| 亚洲午夜精品久久| 亚洲国产欧美在线人成| 国产精品xvideos88| 久久―日本道色综合久久| 欧美四级伦理在线| 欧美日韩国产精品一区| 欧美日韩视频| 欧美日韩精品免费观看视一区二区| 欧美激情视频免费观看| 欧美福利一区二区| 国产视频久久久久| 国产在线麻豆精品观看| 国产一区三区三区| 影音先锋亚洲精品| 亚洲精品影视| 午夜激情亚洲| 久久久久一区二区| 亚洲午夜激情网页| 午夜在线视频一区二区区别| 久久午夜激情| 欧美日韩成人综合| 欧美亚一区二区| 激情久久久久久久| 亚洲综合国产精品| 性感少妇一区| 亚洲国产成人精品久久| 99精品热视频只有精品10| 国内精品伊人久久久久av影院 | 一区二区三区回区在观看免费视频| 国产精品久久久久久av下载红粉 | 久久精品国产99| 日韩亚洲在线观看| 夜夜爽99久久国产综合精品女不卡| 久久精品视频在线观看| 久久精品视频免费| 欧美视频在线一区| 欧美国产大片| 欧美日韩视频在线一区二区观看视频 | 亚洲黄色高清| 亚洲黄色在线观看| 午夜亚洲精品| 欧美jizz19性欧美| 麻豆精品传媒视频| 免费国产一区二区| 亚洲精品老司机| 亚洲一区欧美二区| 老妇喷水一区二区三区| 欧美日韩国产色站一区二区三区| 国产精品videosex极品| 激情综合在线| 亚洲一区一卡| 久久综合色影院| 亚洲黄一区二区| 午夜精品三级视频福利| 欧美大片在线影院| 国内免费精品永久在线视频| 亚洲伦伦在线| 欧美激情无毛| 亚洲免费黄色| 欧美精选午夜久久久乱码6080| 欧美午夜国产| 中日韩美女免费视频网站在线观看| 蜜臀91精品一区二区三区| 亚洲欧美国产va在线影院| 欧美伦理91i| 亚洲精品视频免费观看| 欧美电影在线观看| 欧美成人首页| 亚洲手机在线| 亚洲视频在线视频| 欧美午夜精品久久久久久孕妇 | 欧美黄色片免费观看| 亚洲综合色自拍一区| 欧美精品久久久久久久免费观看| 免费观看在线综合色| 亚洲一二三区在线观看| 卡一卡二国产精品| 久久另类ts人妖一区二区| 好吊日精品视频| 蜜桃av综合| 欧美激情一二三区| 91久久久亚洲精品| 亚洲黄网站黄| 欧美日韩国产成人在线观看| 99国产精品久久久久久久久久| 久久精品国产精品亚洲| 久久精品日韩欧美| 在线不卡视频| 亚洲制服av| 亚洲国产高清在线观看视频| 亚洲人成在线观看一区二区 | 久久久久久久久伊人| 久久激情婷婷| 亚洲免费观看视频| 亚洲欧美999| 国产欧美一区二区三区国产幕精品 | 欧美黑人在线观看| 美女网站在线免费欧美精品| 亚洲特级片在线| 亚洲综合精品四区| 亚洲美女在线看| 欧美在线播放一区| 一区二区三区导航| 篠田优中文在线播放第一区| 亚洲毛片一区二区| 欧美在线视频全部完| 99国产精品一区| 欧美专区中文字幕| 亚洲综合激情| 欧美久久九九| 亚洲国产高潮在线观看| 激情欧美日韩| 亚洲欧美日韩一区在线| 亚洲欧美视频一区| 噜噜噜噜噜久久久久久91 | 久久免费精品日本久久中文字幕| 久久久久国产一区二区三区四区| 亚洲欧美日韩成人| 欧美激情一区二区三区| 免费观看成人网| 在线播放中文一区| 毛片一区二区三区| 欧美aa在线视频| 亚洲国产免费看| 久久亚洲国产成人| 亚洲高清网站| 日韩亚洲国产精品| 国产精品chinese| 亚洲国产视频a| 最新日韩在线| 欧美日韩国产a| 亚洲欧美文学| 久久亚洲综合网| 亚洲韩国青草视频| 欧美激情五月| 亚洲欧美日本精品| 欧美在线观看日本一区| 国产农村妇女精品一二区| 久久精品99国产精品| 欧美国产国产综合| 亚洲欧美在线一区| 国内精品久久久久久久影视麻豆 | 亚洲婷婷综合色高清在线| 欧美国产日本| 亚洲一区二区三区三| 久久久国产精品亚洲一区| 亚洲激情专区| 国产乱码精品一区二区三区五月婷 | 久久综合一区二区| 久久影视三级福利片| 国外成人在线| 欧美日韩成人在线| 麻豆精品在线观看| 欧美影院久久久| 亚洲精品一区二区三区99| 欧美在线观看视频一区二区| 蜜桃av久久久亚洲精品| 亚洲一区二区三区国产| 久久精品免费看| 亚洲三级免费| 狠狠色狠狠色综合系列| 欧美日韩你懂的| 欧美激情综合亚洲一二区| 性亚洲最疯狂xxxx高清| 亚洲免费伊人电影在线观看av| 久久午夜视频| 亚洲欧美自拍偷拍| 亚洲狠狠丁香婷婷综合久久久| 国产精品一二三四区| 国产精品久久国产精品99gif| 欧美激情小视频| 欧美国产一区二区| 美女999久久久精品视频| 久久精品夜色噜噜亚洲a∨| 亚洲女性喷水在线观看一区| 夜夜嗨av一区二区三区免费区| 亚洲欧洲日韩女同| 免费观看国产成人| 亚洲大胆人体视频| 亚洲国产另类 国产精品国产免费| 欧美激情乱人伦| 亚洲日韩欧美视频一区| 日韩一区二区精品葵司在线| 亚洲视频中文| 欧美亚洲日本国产| 久久精品国产999大香线蕉| 久久久国产一区二区三区| 另类春色校园亚洲| 欧美日韩美女| **性色生活片久久毛片| 亚洲国产成人久久| 亚洲一区综合|