天天看點

名廚android2.0項目總結

 1.事件處理    輪播: 事件的分發 ,事件的攔截,事件的處理

    2.listview混排注意事項  

     getViewTypeCount()

getItemViewType      

3.高度測量 listview嵌套listview   listview嵌套grideView scrolView嵌套listview 評論string過長後顯示不全的問題 首先要給Texview 添加幾個屬性

android:ellipsize="none"
android:lineSpacingExtra="4dp"
android:maxLines="100"
android:scrollHorizontally="false"      

然後發現添加完這幾個屬性後并沒有什麼反應,那它不折行那問題肯定是string的長度擠到了外面那就給textViewx限制下寬度好像不太合理是以就給textView 外面套一個linnerlayout 設定它的width 為一個固定值這樣知道textView長度夠的時候它才會限制,是以對textView的影響沒有

public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
        return;
    }
    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight
            + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
}      

listview 嵌套grideview  需要自定義Grideview 來禁止内滑動,主要的是重寫on measure方法,進行測量

public class NoScrollGridView extends GridView {
    public NoScrollGridView(Context context) {
        super(context);

    }

    public NoScrollGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public NoScrollGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}      

4.android 6.0适配問題

5.友盟分享的各種坑 文檔上說快速內建隻需10分鐘,其實他妹的扯犢子 1).首先就是Ui 不合适特别是自定義的按鈕的圖檔大小累蒙圈我們的設計師了   問題: 自定義按鈕的圖檔預設被友盟拉大和其他icon 差別出來是自定按鈕   解決方案:請求設計師做一套留有空白邊的icon 這樣就解決方案了,圖檔的大小我已經留了下來,避免下回重複此工作

2).qq控件分享不成功

 問題:分享連結錯誤 因為我們的應用還沒有上線,是以分享的連結是本地搭建的伺服器位址,比如:"http://192.168.1.132:8001/app“ 解決方案:分享連結最好用帶域名的連結,不要使用帶ip位址的連結

3).內建錯誤的 qq appId

  問題:清單檔案的qq activity de scheme id 問題   解決方案:id 前面需要加上tencent 

<data android:scheme="tencent100519554" />      

4).微信分享文案的問題

   問題:明明給溫馨設定了分享内容可是文案莫名的消失了

   解決方案:微信的分享文案和其他的分享平台不一樣不是放在text 裡面而是放在了title 裡面是以要把分享文案放在titile 裡面

5)。新浪繼承問題

  問題: 找不到內建新浪的so 檔案

  解決方案: 把所有so檔案放在libs 目錄 并且要在gradle 裡面指定下so 檔案所在的位置,在按android 下加入

sourceSets {
    main {
        jniLibs.srcDirs = ['libs']
    }
}      

6).各個平台的title 問題 效果不一樣

  • qq空間和微信不設定标題,标題就預設顯示内容了.就是說内容重複顯示了2次
  • 微信朋友圈如果設定了标題,那麼内容就不顯示了
  • 新浪微網誌沒這個功能

    總結: 最好給每個平台都設定titile 這樣就不會出現分享失敗的原因,并且微信的title text 要特使對待, 并且分享的連結,圖檔,要注意大小

7).分享的相關代碼最好寫在一個公共的累裡面,這樣友善奇台切面的調用,也減少了代碼的備援

6.推送的內建問題     這裡隻能說 grade 裡面的applicationId 一定要是自己的包名一定要正确正确!!!!!

7.适配問題:

  1).寫布局檔案的時候一定要把每個view的background設定下,不然在每個手機跑出來的界面你永遠都不知道是個什麼德行

 2).基于android 6.0動态擷取權限

 3).華為榮耀底下的黑條布局适配問題

 4).按鈕無響應的問題,原來如果兩個布局疊放在在一起預設的如果不特殊處理,每個手機點選效果是不一樣的哦 ,固 要把小面的點選事件設定為false       

8.代碼優化,能提取的代買盡量前期全部提取友善後面的頁面調用

  1)每個頁面的title 和底部的Bar 

  2)能夠複用的布局以及差别不是很大布局樣式盡量寫在一起

9.兩個activity 傳遞的是對象數組的時候需要注意!!注意

  問題: 正常我們隻需要在javabeen裡面內建 Serializable 就可以了,可是發現資料傳遞不過去,還報出來莫名的錯誤這是為什麼呢為什麼呢!!! 

   解決方案: 繼承了Serializable 這個類的内部類也需要內建 Serializable