縱橫開發(fā)也多年了,開發(fā)過程中總會有一些疑難雜癥,意想不到的bug問題等,在此開帖記錄備用也方便他人
1. textview設置單行屬性singleline為true后在viewpager和recyclerview中橫向滑動不順暢造成卡頓的感覺?
原因:滑動不順暢卡頓通常都是存在事件沖突造成,這個也不列外:textview設置sigleline以后,textview在橫向上可以滑動,edittext常設置此屬性,對于單行大數(shù)據(jù)的輸入可以前后滑動看數(shù)據(jù),但是將其放到viewpager等橫向滑動的容器中,textview的橫向滑動和viewpager的橫向滑動沖突了。所以才會出現(xiàn)上面的問題。可以看一下textview的源碼applySingleLine(boolean singleLine, boolean applyTransformation,boolean changeMaxLines)里面描述的很清楚。
解決方案:由于我的需求是文本不需要橫向滑動,如果顯示不全,直接后面點點點即可,所以替換一種方案,利用lines替代sigleline既可以實現(xiàn)單行,也可以重寫textview的setsigleline()方法,不啟動橫向滑動即可
2. 地圖應用開發(fā)過程中poi的mark和彈窗infowindow需要注意的點:
在高德地圖的使用中添加infowindow顯示坐標點的詳細信息在很多應用中使用,當前高德地圖(3一上版本)將infowindow和marker封裝在一塊(可以說很屎)在使用過程中有一些需要注意的:
- 在高德地圖中設置infowindow很簡單,直接設置一個infowindowadapter就好參數(shù)是一個監(jiān)聽,在監(jiān)聽方法中返回一個view即可,再返回view的時候注意,高德已經(jīng)封裝了一個背景(奇丑無比),如果想重寫了需要在最外層布局中設置背景。
- 添加maker的時候必須設置marker的title,不然是不會彈出infowindow的。
- 點擊marker的時候無需其他操作可以自己彈出infowindow,并自動移動到地圖的中間,看似很牛掰,可以在移動的過程中我還需要調(diào)整地圖的層級的奧,避免大量的poi點聚在一起不容易操作,所以這個東西對于大批量poi點來說意義不大。
- 有3可知,為了在點擊poi點移動到中間并且擴大地圖的層級同時實現(xiàn)那就不能讓其直接顯示了,設置amap的onmarkerclicklistener(),特別注意此時要返回true,不然還是會傳遞事件自己顯示。通過地圖api設置poi到中間并且響應的縮放層級即可,然后調(diào)用marker.showinfowindow()即可。
3. httpclient接口訪問post讀取數(shù)據(jù)不完整:
httpclient訪問php服務器有可能獲取到數(shù)據(jù)不全(即返回的json格式不完整),通過網(wǎng)絡搜索包括項目解決將可能原因匯總?cè)缦拢ㄖ皇怯龅降暮途W(wǎng)絡上說明的,歡迎大家補充):
- php服務器有緩存,接口從緩存區(qū)讀取數(shù)據(jù),緩存區(qū)滿了,遇到接口的數(shù)據(jù)量太大,只能將部分的數(shù)據(jù)存入緩存區(qū),此時獲取到的數(shù)據(jù)不完整。項目出現(xiàn)的是這個。此時想不通的是瀏覽器和ios偏好一些,可以獲取到更多的數(shù)據(jù),對于非常大的接口數(shù)據(jù),瀏覽器也沒轍。
- php接口對數(shù)據(jù)進行了gzip壓縮,網(wǎng)上看到的。
- 當前手機連接的網(wǎng)絡有問題,路由器等對數(shù)據(jù)傳輸有限制,數(shù)據(jù)量太大,超過了此限制,網(wǎng)上了解到的,對于有些公司限制網(wǎng)絡訪問速度或者數(shù)據(jù)量有可能出現(xiàn)
- httpclinet 下載圖片不全可以參照這個博客:點擊打開鏈接
4. textview動態(tài)設置字號時可以直接指定字號單位:
setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素
setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP
setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP
5. 點擊popwindow外部不能關(guān)閉bug解決:
popupWindow.setBackgroundDrawable(new ColorDrawable(0));//popwindow 不設置背景圖片點擊外部不會消失
6. IntentService出現(xiàn)沒有空構(gòu)造方法異常:
intentservice是平時Android開發(fā)很常用的一個異步處理邏輯,正常繼承intentservice需要構(gòu)造方法,系統(tǒng)提示默認生成帶有參數(shù)name的構(gòu)造方法,在使用的時候按照正常使用,就會出現(xiàn)上面沒有單參數(shù)構(gòu)造方法的異常
解決: 通常intentservices處理單個邏輯,所以在繼承的時候直接在子類內(nèi)部添加無參數(shù)構(gòu)造方法,在方法內(nèi)部設置好對應的name即可。
7.如何實現(xiàn)動態(tài)切換app切換主屏幕圖標
參考文章:動態(tài)切換app主屏幕圖標
8. 解決Android webview “l(fā)ocation.replace” 不起作用問題
Android webview “l(fā)ocation.replace” 不起作用問題
9. 解讀recyclerview的幾個獲取高度的api
recyclerview的高度獲?。赫w高度+屏幕高度+滑動高度
- 解決頁面被回收造成的dialog關(guān)閉異常。
DialogFragment 崩潰異常 IllegalStateException:Can not perform this action after onSaveInstanceState