編輯:關於Android編程
先來看下Android API 的這個Methods:
If the popup is showing, calling this method will take effect only the next time the popup is shown or through a manual call to one of the
update()
methods.
Parameters
isOutsideTouchable()
isShowing()
update()
就是說,基本通過這個屬性和setFocusable(true);就能實現點擊別的區域讓popup消失,
也可以這樣做,設置點擊popup窗體自身,讓其消失,通過下邊的方法即root重寫onTouch方法:
//點擊窗體,PopupWindow消失 root.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { popup.dismiss(); return true; } });
@Override public boolean onTouchEvent(MotionEvent event) { if (popup != null && popup.isShowing()) { popup.dismiss(); popup= null; } return super.onTouchEvent(event); }
其實,罪魁禍首就是, popup的代碼順序, 手賤先調用了 showAsDropDown()方法,在設置其他屬性,導致了這種情況.
showAsDropDown這個方法相當於 Dialog.show()方法, 如果是先show了, 然後其他屬性即使是設置了,也起不到應有的作用.
這一點,經常提醒別人,沒想到到popup這裡我犯了同樣的錯誤.
效果圖:代碼: //自定義布局的toast customViewToast.setOnClickListener(new View.OnClick
一般SDK中都會帶有一些示例程序,說明具體用法,Android SDK也是如此。它提供了一些ApiDemo示例,詳細說明了Android中主要API,分為以
前言這篇文章是這個系列的開篇,作為移動開發者,開發的應用不免會對網絡進行訪問,雖然現在已經有很多的開源庫幫助我們可以輕而易舉的訪問網絡,但是我們仍要去了解網絡訪問的原理,
使用adb shell procrank手機中的sh是經過精簡過的,有些手機可能沒有 procrank 命令,可以使用genymotion模擬器,或是自己安裝procra