项目实战: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.