首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个支持Fragment,View,图片轮播的Banner

之前有一个项目中有用到轮播,不过不是简单的轮播图片就完了,而是要轮播很多个View,一开始我的想法和大家一样在github在一个算了,哈哈,不过在试用了很多个项目之后都觉得不能完全满足我的需求,大部分还是针对于图片轮播的场景...,所以是时候自己搞一个既支持图片,也支持各种自己定义的View,也支持fragment,同时也可以选择不同实现方式的指示器或者干脆去掉,适应个各种需求场景。...用position = position % listFragment.size(); 滚动的坐标求余Fragment的个数既求得正确的Fragemnt的坐标,代码很少,很简单,这样就可以Fragment...有了上面这个两个类就可以实现Fragment和View的循环轮播。...这个Banner既支持Fragment,也支持普通的View,当然也有懒人专用的传个数组就可实现图片轮播,整个项目我已经生产一个库,具体的源码和用法,怎么引用请参见github. https://github.com

1.9K30

ViewRootImpl的独白,我不是一个View(布局篇)

分析了Activity设置页面布局到页面View元素进行布局到底经历了一个怎么样的过程?...是因为我在掘金上看到一篇子线程更新View的文章之后,发现自己对View还不是很了,以这个问题为方向看了View相关的源码。...View的放置都是根据一个矩形空间放置的。 layout方法:是View的放置方法,在View类实现。...Activity中的Window的setContentView 阅读这篇文章我们知道Activity中有Window对象,一个Window对象对应着一个View(DecorView),ViewRootImpl...我们知道界面所有的元素都是有View构成的,界面上的每一个像素点也都是由View绘制的。Window只是一个抽象的概念,把界面抽象为一个窗口对象,也可以抽象为一个View。

78410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一个基因有两个id我能肿么办

    有学员提问, 为什么他看到了一个基因,如下所示,居然有两个id,看起来就非常的诡异,让他百思不得其解。...一个基因有两个id 其实这个基因首先是有一个基因名字,是 MATR3 ,是人类基因命名委员会给出来的。...其实这个时候你可以随意选择,比如这个基因你可以直接删除,或者两个id随意选择一个,或者选择表达量最高的那个id。...duplicated(ids$SYMBOL),] # 我这里直接粗暴的删除出现重复的id head(ids) pos=match(ids$ENSEMBL,rl$V1)#match函数获取括号中左边的在右边的中的位置信息...人类就只有2万个蛋白编码基因矩阵, 4万个id缺失了就缺失了,这就是人生。如果你问我为什么,我得给你开课,讲解背景知识至少十天半个月!

    3.2K40

    动态创建Fragment

    填充器 4.0 通过Return方法把inflate得到View对象给返回出去 5.0 在使用fragment的activity里面调用getFragmentManager方法.得到fragmentManager...,new class 继承 Fragment 第二步,复写onCreateView方法 第三步,在onCreateView里面进行,使用inflater把layout布局文件转换为一个View对象 第四步...下面是我做的一个小Demo 是在一个页面中实现各个Activity之间的通信,左侧点击按钮,右侧出现相应的Activity界面.同时on关实现两个Activity之间的通信....先编写一个方法initview()实现初始化. 然后根据swich开始编写Fragment.这里有七个Fragment,每个Fragment里面代码内容相似就用一个做代表....view = inflater.inflate(R.layout.fragment2,null); //fragment的布局控件的查找,就要用到inflater得到的VIew对象. returnview

    2.4K10

    Android开发之漫漫长途 XII——Fragment详解

    ); } } 到这里我们运行程序就可得到如下结果 ?...--删除了上面两个fragment标签,加入了一个id为main_layout的FrameLayout布局--> <FrameLayout android:id="@+id/main_layout...开启一个事务,通过调用beginTransaction方法开启。 向容器内加入Fragment,一般使用replace方法实现,需要传入容器的id和Fragment的实例。...整个函数的意思就是第2个参数中指定的Fragment嵌入到第一个参数指定的布局容器中。这一点我们可以通过Hierarchy View验证。 ? 提交事务,调用commit方法提交。...Fragment中调用另外一个Fragment中的方法 我们可以直接在一个Fragment中调用另外一个Fragment的公开方法,前提是要先拿到另外一个Fragment的实例,我们先来看看怎样拿到实例

    41010

    Android手机平板两不误,使用Fragment实现兼容手机和平板的程序

    记得我之前参与开发过一个项目,要求程序可以支持好几种终端设备,其中就包括Android手机和Android Pad。...这尤其是苦了我们的X总(由于他dota打的比较好,我都喜欢叫他X神)。他在我们项目组中单独维护一个模块,并且每次打版本都是由他负责,加班的时候我们都能跑,就是他跑不了。...这里也是赞扬一下我们X神的敬业精神,如果他看得到的话。 经历过那么苦逼时期的我也就开始思考,可不可以制作同时兼容手机和平板的App呢?...直到我一个在美国留学的朋友Gong让我帮她解决她的研究生导师布置的作业(我知道你研究生导师看不懂中文 ^-^),正好涉及到了这一块,也就借此机会研究了一下,现在拿出来跟大家分享。...> fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/sound_fragment

    1.6K70

    Android开发之漫漫长途 XIII——Fragment最佳实践

    ---- 前言 上一篇文章中详细分析了Fragment相关知识,那么作为“小Activity”,Fragment能做什么呢,如何使用Fragment得到最佳实践呢。...好了,,下面我就来实现上图的效果,不过在开始之前,首先你必须已经了解Fragment的用法了,如果你对Fragment还比较陌生的话,建议先去阅读我前面的一篇文章Android开发之漫漫长途 XII——...目前Fragment作为演示使用,可以看到布局内容都非常简单,我这里只给出其中一个Fragment的创建过程和源码,项目完整源码可见文末的源码地址。...view = inflater.inflate(R.layout.fragment_goods, null); return view; } @Override...remove(Fragment fragment) : 移除一个已经存在的Fragment. show(Fragment fragment): 显示一个以前被隐藏过的Fragment hide(Fragment

    1.3K20

    新闻客户端实现左侧导航点击切换

    设置主布局文件,为根布局设置一个id,作为内容区 给ListView的条目设置点击事件,setOnItemClickListener()方法,参数:上下文 当前的Fragment实现OnItemClickListener...接口 实现onItemClick()方法 switch判断一下当前菜单的索引位置,根据索引来实例化不同的Fragment对象 调用getActivity()方法,得到宿主Activity对象,这个activity...暴露一个方法,替换fragment 使用关键字instances of判断getActivity()得到的是MainActivity类的实例 调用宿主Activity对象的switchMenuFragment...().beginTransaction().replace(R.id.ll_main_content, fragment).commit(); 调用SlidingMenu对象的toggle()方法,关闭左侧菜单...> parent, View view, int position, long id) { Fragment fragment=null; switch

    75330

    Android Navigation + Fragment 制作APP主页面导航(步骤 + 源码)

    然后建一个Fragment类,这里命名我就用ABCDE来命名了,实际开发中是肯定不能这样的。 ? 然后在layout新建一个布局fragment_b.xml ? 然后修改一下这个布局 fragment_a.xml中我放了一个TextView用来表示这个是A,那么其他的xml中也要放置对应的BCDE,这样你切换的时候才能看到区别。...但是这时候又有一个问题,那就是我的这个NavHost初始显示哪一个Fragment,这一点Google的人也想到了,可以在导航图中指明。 打开nav_graph.xml。...这个是用来控制NavHost显示Fragment,虽然我刚才在导航图nav_graph.xml中指明了第一个要显示的Fragment,但是它还缺少这个显示的动机,而这个动机由NavController来提供..." android:title="我的" /> 之前我是有5个Fragment,那么这里添加5个item,并且item的id要和之前导航图的fragment的id保持一致

    10.2K42

    android推荐使用dialogFrament而不是alertDialog

    是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框。典型的用于:展示警告框,输入框,确认框等等。... view = inflater.inflate(R.layout.fragment_edit_name, container);   return view;       }   }   效果图...5、传递数据给Activity 从dialog传递数据给Activity,可以使用“fragment interface pattern”的方式,下面通过一个改造上面的登录框来展示这种模式。...(R.id.id_txt_username);           mPassword = (EditText) view.findViewById(R.id.id_txt_password);  ...)                       .commit();           }       }   可以看到,我们通过读取R.bool.large_layout,然后根据得到的布尔值,如果是大屏幕则直接以对话框显示

    2.4K50

    手把手教你从零开始做一个好看的 APP

    睡觉之前如果能有一个 APP,能让我们写一写这一天的见闻或者心得,同时又能看一会段子、瞄一会好看的妹子,放松一下疲惫的身心那该多好,这也是我完成这个 APP 的原因。...一、功能需求 既然要做一个 APP,那我们首先还是得把 APP 的功能都列出来,有了方向才能更好的努力,因为我想做的是一个专门给睡觉前用的 APP,所以我觉得应该有以下的这些功能 1、日记的增删改 2、...,传入一个 String 类型的数据,直接得到数据实体类的 List。..., @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_meizi...因为图片需要有根据手势来放大缩小的功能,因此我便想到了 PhotoView,这是网上一个大神写的,继承自 ImageView 的一个自定义控件。

    67730
    领券