Code Monkey home page Code Monkey logo

mvpbase's Introduction

项目介绍

  • 史上最适合MVP初学者学习的DEMO,整体运用OKhttp+Mvp+MD风格设计,项目在网上抓取了实时新闻和搞笑图片,后期会继续完善其功能。

  • 如果有一定MVP模式基础可以看一下我封装好的快速开发框架,相信会受益匪浅 https://github.com/qiaoyhh/AndroidProjectHelper

-本人能力有限,有问题可以大家一起探讨,共同进步,欢迎star fork

首页 详情页 登录界面

###功能

-从0-1设计MVP模式

-最正宗的沉浸式状态栏

-一键回到最顶端

-炫酷的登录界面

-一键换肤功能

######MVP的优点:

  • 模型与视图完全分离,我们可以修改视图而不影响模型

  • 可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部

  • 我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁。

  • 如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)

mvpbase's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

mvpbase's Issues

有一个疑问

在MainFirstPresenter中持有了MainDetailActivity的引用,那么不会造成内存泄露的问题吗?这个框架是如何处理生命周期的问题呢?

疑问,求指点

 @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        if(viewType==TYPE_ITEM){
            View news = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_first_news, parent,false);
            ItemViewHolder vh=new ItemViewHolder(news);
            return vh;
        }else {
            View footer = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_first_footer, null);
            footer.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT));
            return  new FooterViewHolder(footer);
        }

前辈您好,我想问一下,为什么inflate footer时,要使用setLayoutParams()???而不是像

  View news = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_first_news, parent,false);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.