項目實戰:P2P金融APPday01學習筆記—框架搭建
不否認努力,繼續加油!
學習整理重點、盲區,筆記如下:乾乾巴巴,麻麻賴賴,一點都不圓潤……
day01
內容
1. 整體架構;
- 上邊是 FrameLayout;填充4個不同的碎片;
- 下面是 RadioGroup;
2. 創建各碎片及其佈局;
public class HomeFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = View.inflate(getActivity(), R.layout.fragment_home, null);
……
3. 實現不同碎片間的切換;
-
不建議選擇 replace() 來替換fragment ?
-
replace() 是 remove()—>add() 每次切換的時候,Fragment都會重新實例化,重新加載一遍數據,
-
所以通過切換 hide(),add() 另一個 Fragment,切換時只需hide() 當前,show() 另一個。
-
動態加載碎片
FragmentManager fragmentManager = this.getSupportFragmentManager(); transaction = fragmentManager.beginTransaction(); if (homeFragment == null) { //創建對象以後,並不會馬上調用生命週期方法。而是在commit()之後,方纔調用 homeFragment = new HomeFragment(); transaction.add(R.id.fl_main, homeFragment); } transaction.show(homeFragment); transaction.commit();
-
投機
每次點擊都隱藏 全部的 碎片,而後在進行其點擊事件(顯示該顯示的頁面、響應點擊的底部 button); -
設置 TextView 的顏色字體
如果設置的顏色是 values - colors 中的顏色,那麼
tvMainMore.setTextColor(getResources().getColor(R.color.home_back_unselected)); //這種方式也可以 tvMainMore.setTextColor(ContextCompat.getColor(this, R.color.home_back_unselected));
4. 連續點擊兩次退出當前應用;
-
private boolean flag = true; private static final int WHAT_RESET_BACK = 1; private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case WHAT_RESET_BACK: flag = true;//復原 break; } } }; @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && flag) { Toast.makeText(MainActivity.this, "再點擊一次,退出當前應用", Toast.LENGTH_SHORT flag = false; //發送延遲消息 handler.sendEmptyMessageDelayed(WHAT_RESET_BACK, 2000); return true; } return super.onKeyUp(keyCode, event); }
-
爲了避免出現內存的泄漏,需要在 onDestroy() 中,移除所有未被執行的消息
@Override protected void onDestroy() { super.onDestroy(); //方式一:移除指定id的所有的消息 //handler.removeMessages(WHAT_RESET_BACK); //方式二:移除所有的未被執行的消息 handler.removeCallbacksAndMessages(null); }
盲區
- 聲明:本博客根據尚硅谷項目實戰: 硅谷金融.學習整理;
- 對於碎片的加載有點遺忘;
transaction.add(R.id.fl_main, homeFragment);
動態的把 homeFragment 添加到對應頁面的 FrameLayout 中; - 設置文本顏色方法:
tvMainMore.setTextColor(ContextCompat.getColor(this, R.color.home_back_unselected));
- 重寫 onKeyUp() ;
其他筆記
金融App
商城
Android項目實戰—— 商城APP.
新聞
Android項目實戰—— 新聞APP.