美文网首页
2019-09-01 第九周 - Fragment回退栈的应用场

2019-09-01 第九周 - Fragment回退栈的应用场

作者: 做梦枯岛醒 | 来源:发表于2019-10-05 21:02 被阅读0次

10月5 山东海阳
晚8点半 降温

气温骤降,T恤一瞬间就不能穿了,假期马上就要结束了,马上又要从家里回去,有点不舍,今天做了一点之前的小天盒子项目,然后看了一点数据库的东西。

最近买了一本新书,是将Android自定义控件的开发,利用空闲时间看了第一章,主要是对于画笔和画布的一些基本知识的讲解,然后又抽空写了一篇关于原型头像的实现的文章。

文章分享

圆形头像的两种实现方法,原型头像在各种app中经常出现,大部分app都会选择使用圆形和圆角矩形作为头像,对于实现这两种效果的头像,其实思路是一样的,只是形状不一样,在这篇文章中采用了两种方法来实现。

XferMode和Clip

其中前者是类似于图层的叠加效果,最近在做图标着色功能,其中着色时候就有色彩的叠加效果。通常SRC_IN就可以满足我们的要求。

后者是一种更巧妙的方法,是借助于画布的裁剪效果来实现的,首先把画布裁剪成想要的形状,然后填满整个画布即可。

其实实现圆形头像还有很多方法,在这里就不多说了。

小Tip

经常在项目中封装Fragment来使用,但是在回退的时候要将Fragment挨个出栈的时候发现没法实现,后来查了一下是要用到回退栈。


    public void open(Fragment fragment) {
        if(activity.fContainer() == activity.NULL_CONTAINER){
            throw new IllegalArgumentException("fragment container is error");
        }else{
            ft = fm.beginTransaction();
            ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            ft.addToBackStack(null);
            ft.add(activity.fContainer(),fragment).commit();
        }
    }

上面这一段代码是打开一个fragment的时候的操作,关键位置在add fragment之前调用addToBackStack()方法

这个方法就是用来记录进栈的,并且我们可以指定一个名字作为栈内元素的标识。


当我们出栈的时候。

 public void close() {
        ft = fm.beginTransaction();
        if(fm.getBackStackEntryCount() > 0){
            fm.popBackStackImmediate();
        }
    }

在出栈的时候要看栈内的元素数量,如果有的话,要调用pop方法出栈。


相关文章

  • 2019-09-01 第九周 - Fragment回退栈的应用场

    10月5 山东海阳晚8点半 降温 气温骤降,T恤一瞬间就不能穿了,假期马上就要结束了,马上又要从家里回去,有点不...

  • Fragment回退栈和Activity栈不太一样

    Fragment回退栈,加入到Fragment回退栈里面的fragment出栈后,处于栈顶的fragment也不会...

  • 回退栈

    Fragment 的回退栈创建MvpFragmentManager : 监听使用

  • 实习笔记17.07.20

    fragment回退栈?当Activity继承AppCompatActivity时 fragmentTransa...

  • Fragment学习

    1、Fragment回退栈管理 Activity是由任务栈管理的,遵循先进后出的原则,Fragment也可以实现类...

  • fragment回退栈

    https://blog.csdn.net/zhiyuan0932/article/details/5259303...

  • Fragment 回退栈

    一、什么是回退栈Activity切换时是通过栈的形式,不断压栈出栈,在Fragment的时候,如果你不是手动开启回...

  • Fragment 回退栈

    一、什么是回退栈 Activity切换时是通过栈的形式,不断压栈出栈.在Fragment的时候,如果你不是手动打开...

  • fragment的回退栈

    在Android开发之Fragment动态使用一文中,说到replace方法切换Fragment,会造成Fragm...

  • Fragment之Fragment回退栈

    类似Android系统为Activity维护一个任务栈,我们也可以通过Activity维护一个回退栈来保存每次Fr...

网友评论

      本文标题:2019-09-01 第九周 - Fragment回退栈的应用场

      本文链接:https://www.haomeiwen.com/subject/sbjypctx.html