android小結
記錄新的知識點:
1:為什麼mContentFmLayout明明是FrameLayout 型別,在mContentFmLayout.getLayoutParams()得到的是LinearLayout,
看下原始碼後發現,通過getLayoutParams()獲取到的是父類的型別哦。
private FrameLayout mContentFmLayout;
LinearLayout.LayoutParams lpC = (LinearLayout.LayoutParams) mContentFmLayout.getLayoutParams();
2:設定頭部下拉重新整理成功後,頭部隱藏的動畫。
mHiddenAction = new SelfTranslateAnimation(0,0,0,-getResources().getDimensionPixelOffset(R.dimen.cheader_height));
mRootView.startAnimation(mHiddenAction);//執行動畫
class SelfTranslateAnimation extends TranslateAnimation{
public SelfTranslateAnimation(float fromXDelta, float toXDelta, float fromYDelta, float toYDelta) {
super(fromXDelta, toXDelta, fromYDelta, toYDelta);
}
@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {//這方法是關鍵哦,interpolatedTime是0到1的漸變。通過設定setDuration,控制漸變速度。
LinearLayout.LayoutParams llp = (LinearLayout.LayoutParams) mUpdateHeaderView.getLayoutParams();
llp.setMargins(0,-(int)(getResources().getDimensionPixelOffset(R.dimen.cheader_height)*interpolatedTime),0,0);//巧妙的通過設定負的margin來實現隱藏效果。
mUpdateHeaderView.setLayoutParams(llp);
}
}
3.android事件分發注意事項:
1.首先事件先下發到父類如(ViewGroup),通過dispatchTouchEvent,若為true則阻止事件進一步下發,判斷條件有兩個onInterceptTouchEvent和disallowIntercept,兩者的取值預設都為false,當disallowIntercept的值為true時事件就開始下發,或者當onInterceptTouchEvent為false時事件開始下發,disallowIntercept的另一個作用就是阻止將子控制元件的事件繼續傳到父類的ontouchevent中處理,當設定為true時就阻止了向父類繼續傳遞。disallowIntercept的值可以通過呼叫requestDisallowInterceptTouchEvent方法對這個值進行修改,多用於滑動衝突解決如(豎直方向巢狀橫向的scrollview的組合)。
2.在ontouchevent事件中若想事件向ACTION_MOVE傳遞,不能在down事件中就返回false,要返回true繼續傳遞。
相關文章
- Android動畫小結Android動畫
- Android容器類小結Android
- [Android]aapt命令小結AndroidAPT
- Android MediaCodec小結Android
- Android Webview 使用小結AndroidWebView
- Android技能樹 — PopupWindow小結Android
- Android技能樹 — Activity小結Android
- Android技能樹 — View小結AndroidView
- Android技能樹 — 動畫小結Android動畫
- Android技能樹 — Drawable小結Android
- Android Camera 使用小結Android
- Android:Sqlitedatabase學習小結AndroidSQLiteDatabase
- Android斷點下載小結Android斷點
- android adapter的效能小結AndroidAPT
- Android技能樹 — LayoutInflater Factory小結Android
- Android技能樹 — Fragment總體小結AndroidFragment
- Android華為凹口屏適配小結Android
- Android UI 顯示原理分析小結AndroidUI
- Android Color 判斷色值小結Android
- android gradle 多渠道打包小結AndroidGradle
- Android ConstraintLayout 最新使用小結AndroidAI
- Android學習之 WebView使用小結AndroidWebView
- Android技能樹 — 螢幕適配小結Android
- Android技能樹 — View事件體系小結AndroidView事件
- Android技能樹 — 多程式相關小結Android
- Android App安全防範措施的小結AndroidAPP
- react-native 開發小結(Android)ReactAndroid
- Android程式碼優化小技巧總結Android優化
- Android技能樹 — Android儲存路徑及IO操作小結Android
- Android 即時通訊開發小結(二)Android
- Android 系統 overlay 機制重點小結Android
- Android 橫豎屏處理的知識小結Android
- Android技能樹 — 網路小結(2)之TCP/UDPAndroidTCPUDP
- Android技能樹 — 排序演算法基礎小結Android排序演算法
- Android技能樹 — 樹基礎知識小結(一)Android
- Android 熱補丁動態修復框架小結Android框架
- Android處理圖片OOM的若干方法小結AndroidOOM
- Android開發的16條小經驗總結Android