日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 蹲坑的疑难杂症集锦一

發布時間:2024/1/17 Android 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 蹲坑的疑难杂症集锦一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 各位看官老爺子你們好,我就是那個挖坑不埋,還喜歡開新礦的小喵同志。

 問大家一個問題,在Github上找項目的時候,看到中文簡介說明你們是不是覺得這個項目很low不屑一顧?

 最近朋友無意中說,在Github上看到中文的項目點都不想點進去,太low了。想想好像很多大神的項目都是純英語的,so,作為只有四級程度的小同志,我就是那個項目里彌漫著中文的家伙(ノQ益Q)ノ彡┻━┻,你們怎么看?我挺喜歡中文的。
 
例牌Github:https://github.com/CarGuo?:歡迎各種姿勢的star,fuck,watch。

 這期要聊的是那么躺在坑里的需求,想想這一路走來,本人還能正常的行走于人世,真是好感動呢,感謝產品和QA的不殺之恩。

  • 1、TextView的由于Span導致省略號顯示不正常問題。

  • 2、TextView容易被背景同化看不清?增加陰影吧。

  • 3、啟動白屏一會或者點擊logo卡頓很久沒反應的暴力解決。

  • 4、打開自定義圖庫,選擇圖片容易OOM,頁面崩潰回到程序crash。

  • 5、ViewPager嵌套RecyclerView還有輪播圖的手勢沖突,參考:linkagescroll。

  • 6、透明主題會導致手機背景在切換Tab的時候穿透到桌面,一般MainActivity不要用這個。

  • 7、ViewPager的實時數據刷新。

  • 8、CardView 慎用,因為在某些低版本的機器上會有白帶,需要的話可以用shape實現圓角。

  • 9、圖片壓縮安利。

  • 10、RecyclerView的回到頂部的優化。

1、之前分享過一篇文章《文本編輯和顯示(emoji表情,@某人、鏈接高亮點擊)》,這里用到的Spanable替代String用于TextView的顯示,一般情況下是沒什么問題的,但是如果你需要在列表中或者詳情中做省略號處理,你就有可能發現,省略號居然出現在表情的前面,把一大段文字給省略了;又或者直接最后面顯示了一部分的表情。原因Google可閱,這里就說說我農村式的做法吧:

 是的,自己截斷,根據你需要的行數,對應的在顯示的時候把數據截斷,然后自己加上···(這里如有更好的記得評論分享啊!)

textView.setText(spannable); textView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {textView.getViewTreeObserver().removeOnGlobalLayoutListener(this);if (textView.getLineCount() > lineCount) {int endOfLastLine = textView.getLayout().getLineEnd(lineCount - 1);if (endOfLastLine > 4) {CharSequence newVal = textView.getText().subSequence(0, endOfLastLine - 4);textView.setText(newVal);textView.append("...");}}} });

2、TextView經常會因為背景圖片的原因而導致出現看不清文字的情況,這里無數次考慮之后,決定某些特殊地方可以用輕微的陰影解決。

android:shadowColor="#AA000000" android:shadowDy="1" android:shadowRadius="1"

3、啟動頁問題,其實最好是做冷啟動優化,但是作為一個時間緊(tou)張(lan)的程序猿,我是在WelcomeActivity的主題里設置了主題,暴力解決,雖然這不是長久之計:

4、打開自定義圖庫OOM主要要解決的還是內存釋放的問題,有時候內存一下子來的太猛還是不行的,而且邏輯有問題的崩潰導致APP直接回到解放前的確得不償失,所以呢:

 直接把選擇Activityyoga新的process進程打開,這樣閃退了也不影響APP啊,數據該怎么返回還是怎么返回。什么?首次啟動的時候回卡白屏幾秒,下面的主題暴力幫助你。什么?打開卡頓一會才能看到頁面。我試了微信也會,所以如果有優化的控件記得評論分享下,這樣我可以愉悅的去找產品說(zhuang)教(B)。

···

 
5、更新ViewPager,這里簡單上代碼,感受下,我就靜靜的不說話.....((/- -)/:

resolveViewLogic();//比如更新list數據fragmentPagerAdapter.setUpdateFlag(true);//讓其更新fragmentPagerAdapter.notifyDataSetChanged();fragmentPagerAdapter.setUpdateFlag(false);//關了··· public class RefreshFragmentPagerAdapter extends FragmentPagerAdapter {private List fragments;private FragmentManager fragmentManager;private boolean updateFlag;public boolean isUpdateFlag() {return updateFlag;}public void setUpdateFlag(boolean updateFlag) {this.updateFlag = updateFlag;}public void setFragments( List fragments) {this.fragments = fragments;}public RefreshFragmentPagerAdapter(FragmentManager fragmentManager, List fragments) {super(fragmentManager);this.fragments = fragments;this.fragmentManager = fragmentManager;}@Overridepublic Fragment getItem(int position) {return fragments.get(position);}@Overridepublic int getCount() {return fragments.size();}@Overridepublic CharSequence getPageTitle(int position) {return "";}//讓其更新@Overridepublic int getItemPosition(Object object) {return POSITION_NONE;}//核心方法@Overridepublic Object instantiateItem(ViewGroup container, int position) {if (updateFlag) {//根據需求添加更新標示//得到緩存的fragmentFragment fragment = (Fragment) super.instantiateItem(container, position);//得到tag,這點很重要String fragmentTag = fragment.getTag(); //這里的tag是系統自己生產的,我們直接取就可以//如果這個fragment需要更新FragmentTransaction ft = fragmentManager.beginTransaction();//移除舊的fragmentft.remove(fragment);//換成新的fragmentfragment = fragments.get(position);//添加新fragment時必須用前面獲得的tag,這點很重要if (!fragment.isAdded()) {ft.add(container.getId(), fragment, fragmentTag);ft.attach(fragment);ft.commit();}return fragment;} else {return super.instantiateItem(container, position);}} }

9、圖片壓縮安利:Luban,壓縮效果真的不錯,和微信一拼,就是那種長的離譜的圖片壓縮后效果不佳,其他都很不錯,反正我是直接把里面的thirdCompress拿出來套到自己里面。

private File thirdCompress(@NonNull File file)

10、RecyclerView的回到頂部的優化。

 也許你會問,不就是一鍵回去么,為什么還要優化?
 
 因為愛情,不會輕易悲傷,產品經理都是年輕的模樣,看看回到頂部的效果,所以就有了這個優化:

 記得先停止滾動,然后回到第十個,然后在智能的滾到頂部,不信你試試,感覺舒服好多喲。

protected void goToTop() {mRecyclerView.stopScroll();mLayoutManager.setSmoothScrollbarEnabled(true);if (firstVisibilityPosition > 10) {mLayoutManager.scrollToPositionWithOffset(10, 0);}mRecyclerView.smoothScrollToPosition(0);firstVisibilityPosition = 0; }

總結

以上是生活随笔為你收集整理的Android 蹲坑的疑难杂症集锦一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。