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

屏幕宽高不够,滚动视图ScrollView来凑

属性值有以下几个: outsideInset:ScrollBar显示视图(view)的边缘,增加了view的padding. 如果可能的话,ScrollBar仅仅覆盖这个view的背景。...insideInset:ScrollBar显示在padding区域里面,增加了控件的padding区域,ScrollBar不会和视图的内容重叠。...insideOverlay:ScrollBar显示在内容区域里面,不会增加了控件的padding区域,ScrollBar以半透明的样式覆盖在视图(view)的内容上。...ScrollView的几个常用方法有: addView (View child):添加子视图。如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。...addView (View child, int index):添加子视图。如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图

3.1K60

02.视频播放器整体结构

这个每个实现类则都可以拿到这些属性呢 在BaseVideoController中使用LinkedHashMap保存每个自定义view视图,添加则put进来后然后通过addView视图添加到控制器中,...符合开闭原则 适配器模式 这个也是事后补救模式,但是在库中,没有尝试这种方式。...比如外部开发者想加一个广告视图,这个时候肯定需要给它播放器的状态 添加了自定义播放器视图,比如添加视频广告,可以选择跳过,选择播放暂停。...这就涉及view视图的层级性。控制view视图显示和隐藏是特别重要的,这个时候在自定义view中就需要拿到播放器的状态 举一个简单的例子,基础视频播放器 添加了基础播放功能的几个播放视图。...如何控制它们的显示隐藏切换呢? 在addView这些视图时,大多数的view都是默认GONE隐藏的。

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

Android开发笔记(二十一)横幅轮播页Banner

showNext : 显示下一个视图。 showPrevious : 显示上一个视图。 setInAnimation : 设置视图的移入动画。...2、自动翻页 ViewPager没有可以设置自动翻页的方法,得通过Handler机制来定时调用翻页动作。...3、多个子页面视图的适配器 ViewPager可调用setAdapter方法统一设置子页面,ViewFlipper来源自FrameLayout,所以没有适配器的说法。...ViewFlipper本质是多个子视图共存于一个FrameLayout,只是在某个时刻只显示其中的一个子视图,因此ViewFlipper的子页面是一个个addView上去的。...5、多页面的的页码指示器 ViewPager有对应的PagerTabStrip和PagerTitleStrip,可以自动显示页码文字;ViewFlipper则没有相关的页码类,如果需要的话,只能自己定义一个新类

3.3K30

Android加载loading对话框的功能及实例代码(不退出沉浸式效果)

; private boolean isShowing = false; /**显示全屏的加载动画*/ public void alertLoadingDialog(){ if (!...WindowManager.LayoutParams.MATCH_PARENT; // forewarnLayoutParams.windowAnimations = R.style.anim_view;// 添加进入动画 // 添加布局视图...addView弹出效果 原理没啥可说的,直接用就完了,需要注意的是,addView和removeView需要一一对应,以上代码已经加了判断处理。还需要添加权限,不然会报错。...removeViewImmediate()是通知View立刻调用View.onDetachWindow(),这说明这个方法是通过一个监听或者观察者来实现的,因为线程的同步跟异步问题导致activity销毁了,view...还没有被remove完,会导致窗体泄露。

1.2K10

Window刨根问底

首先,它是一个窗口,是Android中唯一的展示视图的中介,所有的视图都是通过Window来呈现的,无论是Activity,Dialog或Toast,他们的视图都是附加到WIndow上的,所以Window...,其实是先到DecorView的,具体逻辑可以自己翻下源码,有机会也可以出篇文章讲讲~ 各种视图显示。...比如Activity的setContentView,Dialog,Toast的显示视图等等都是通过Window完成的。 Window的分层和类别?...然后view怎么显示到界面上的呢,Activity可没有show方法哦?其实就是通过setContentView方法。方法主要做了以下几件事: 创建DecorView,如果不存在的话。...到这里,一个有完整view结构的DecorView就创建出来了,但是它还没有显示到手机界面上,也就是没有被添加到Window中。

47330

Android View 源码解析(一) - setContentView

return contentParent; } 方法的主要功能为 根据窗口的style为窗口选择不同的窗口根布局文件 将mDecor作为根视图将窗口布局添加,获取id为content的FrameLayout...requestFeature() must be called before adding content"); } ... } onContentChanged方法 在PhoneWindow中没有重写...将作为整个应用窗口的根视图 根据根据Feature等style theme创建不同的窗口修饰布局文件 并且通过findViewById获取Activity布局文件存放的地方 将Activity的布局文件添加至...id为content的FrameLayout内 执行到当前页面还没有显示出来 Activity页面显示 我们都知道Activity的实际开始于ActivityThread的main方法 当方法调运完之后会调用该类的...performLaunchActivity方法来创建要启动的Activity组件 这个过程中还会为Activity组件创建窗口对象和视图对象 当组件创建完成后用过调用该类的handleResumeActivity

70740

Android高频面试专题 - 提升篇(一)Window、View、Activity

WindowManager为这个三类进行了细化,把每一种类型都有int常量标识,WmS进行窗口叠加的时候会按照int常量的大小分配不同层,int值越大层位置越靠上面。...即使Activity的布局已经成功添加到DecorView中,DecorView此时还没有添加到Window中 ActivityThread的handleResumeActivity方法中,首先会调用Activity...的onResume方法,接着调用Activity的makeVisible()方法 makeVisible()中通过WindowManager.addView()完成了DecorView的添加和显示两个过程...ViewRootImpl中调用performTraversals方法,然后便开始测量布局绘画了,界面才得以显示出来,这就是View的绘制流程起点。 10、Token是什么?...(mDecor) Dialog必须采用Activity的Context,因为有应用token(Application的Context没有应用token),也可以将Dialog的Window通过type设置为系统

2.3K20

带着问题写React Native原生控件--Android视频直播控件

ReactImageView是这个视图管理类所管理的对象类型,这应当是一个自定义的原生视图。getName方法返回的名字会用于在JavaScript端引用这个原生视图类型。...方法,直播控件与视频播放控件没有渲染出来,进一步调试发现,调用addview之后视频控件本身的onLayout方法没有调用。...后面遇到播放控件中发现其测量方法没有被调用,导致后续onLayout等方法无法调用,手动调用测量方法。...} mUpdateLiveView = true; mHandler.sendEmptyMessage(this.mMode); 上传控制按钮不见了: 后面发现是被叠加了...,也就是视频播放控件后面添加的因此处于最上层,类似css中的z-index属性,坐标轴中的z轴,查文档发现addView之后会回调onViewAdded()方法,翻译下控件已经添加了,那么这里重新设置z-index

5.3K80

04.视频播放器通用架构实践

这个每个实现类则都可以拿到这些属性呢 在BaseVideoController中使用LinkedHashMap保存每个自定义view视图,添加则put进来后然后通过addView视图添加到控制器中,...这就涉及view视图的层级性。控制view视图显示和隐藏是特别重要的,这个时候在自定义view中就需要拿到播放器的状态 举一个简单的例子,基础视频播放器 添加了基础播放功能的几个播放视图。...如何控制它们的显示隐藏切换呢? 在addView这些视图时,大多数的view都是默认GONE隐藏的。...比如当视频初始化时,先缓冲则显示缓冲view而隐藏其他视图,接着播放则显示顶部/底部视图而隐藏其他视图 比如有时候需要显示两种不同的自定义视图如何处理 举个例子,播放的时候,点击一下视频,会显示顶部title...视图和底部控制条视图,那么这样会同时显示两个视图

2.4K00

Android开发笔记(一百四十二)平滑翻页的书籍浏览

openPage:打开PDF文件的指定页面,方法返回一个PdfRenderer.Page对象。 close:关闭PDF文件。...close:关闭pdf页。 总而言之,PdfRenderer的作用就是把一个pdf文件转换为若干个图片,然后开发者可将这些图片展示到手机屏幕上。...在Android的控件家族当中,比较接近上下层叠方式的是栈视图StackView,它的前后两项视图有部分是重叠在一起的,然后可以通过上下滑动来切换当前显示的顶层视图。...StackView的使用方式类似于ListView,都是调用setAdapter方法设置一组子项,多出来的属性只有loopViews,属性用于控制是否循环显示子项视图。...ViewPager+Fragment的三页缓存机制; 页面视图主要负责三块工作: 1、将当前页面高亮显示,其它页面变暗显示; 2、按照用户的手势触摸,将当前页面滑动相应的距离; 3、在用户松开手势时,如果当前页面滑动距离不超过页面宽度的二分之一

1.2K10

手把手教你读懂源码,View的加载流程详细剖析

我们都知道,在开发Android应用程序时,经常会在Activity的onCreate方法里调用setContentView方法,将布局文件或者View对象传入,但是很多人并没有去分析后续是如何加载到面并显示出来的...所以其具体实现是由 Window类的实现类来完成的(后面我们会知道实现类是PhoneWindow)。...DecorView的onResourcesLoaded方法 主要就是将适配的布局文件加载进来生成root视图,调用addView方法添加到DecorView视图。...到目前为止,View只是加载到了Activity,并没有显示出来,继续研究ActivityThread的handleResumeActivity方法。...其执行的过程可简单的概括为:是否需要重新计算视图的大小(measure)、是否需要重新布局视图的位置(layout),以及是否需要重绘(Draw)。

93190

Android中文API——ScrollView

TextView类也有自己的滚动功能,所以不需要使用ScrollView,但是只有两个结合使用,才能保证显示较多内容时候的效率。只有两者结合使用才可以实现在一个较大的容器中一个文本视图效果。...四、公共方法 public void addView (View child) 添加子视图。如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。...参数 child 所添加的子视图 public void addView (View child, int index) 添加子视图。...如果事先没有给子视图设置layout参数,会采用当前ViewGroup的默认参数来设置子视图。...如果只是添加到视图,调用时显示的是旧值0。(译者注:也就是添加到视图时,oldw和oldh返回的是0)。

4.5K30

01.视频播放器框架介绍

用户从wifi切换到4g网络,提示网络切换弹窗界面(当网络由wifi变为4g的时候会显示) 图片广告视图(带有倒计时消失),开始视频广告视图,非会员试看视图 弹幕视图(这个很重要),水印显示视图,倍速播放界面...这个每个实现类则都可以拿到这些属性呢 在BaseVideoController中使用LinkedHashMap保存每个自定义view视图,添加则put进来后然后通过addView视图添加到控制器中,...然后写一个播放器视图接口的具体实现类,在这里里面inflate视图操作,然后接口方法实现,为了方便后期开发者自定义view,因此需要addView操作,将添加进来的视图用map集合装起来。...此类的目的是为了在InterControlView接口实现类中既能调用VideoPlayer的api又能调用BaseVideoController的api 如何添加自定义播放器视图加了自定义播放器视图...这个时候就需要暴露监听视频播放的状态接口监听 首先定义一个InterControlView接口,也就是说所有自定义视频视图view需要实现这个接口,接口中的核心方法有:绑定视图到播放器,视图显示隐藏变化监听

2.6K51

Android之WindowManager.addView介绍

WindowManager 有时候我们需要在桌面上显示一个类似悬浮窗的东西,这种效果就需要用 Window 来实现,Window 是一个抽象类,表示一个窗口,它的具体实现类是 PhoneWindow,实现位于...public void removeView(View view) { mGlobal.removeView(view, false); } WindowManagerImpl并没有直接实现...Window的三大操作,而是全部交给了WindowManagerGlobal: public void addView(View view, ViewGroup.LayoutParams params,...Android 可以提供视图的地方有 Activity、Dialog、Toast,除此之外,还有一些依托 Window 而实现的视图,比如 PopUpWindow(自定义弹出窗口)、菜单,它们也是视图,...有视图的地方就有 Window,因此 Activity、Dialog、Toast 等视图都对应着一个 Window。

1.4K20

android学习笔记----ListView和各种适配器简介

ListView对象,而ListView里面没有addView方法,我们继续往父类上面找,看到了AdapterView里面有addView方法,ListView为AdapterView的子类: 直接看...(左)和设置后(右)的示范图: ArrayAdapter用法: 简单来讲一下ListView和ArrayAdapter: 我们可以将 ListView 看成由 ArrayAdapter 提供支持,没有适配器的话...我们来详细了解下这一切的原理 当你第一次将适配器与 ListView 相关联时 ListView 会询问,你想要显示多少个项?...如果不传入布局id,我们怎么才能按照这个布局来显示呢?...resource:定义此列表项视图视图布局的资源标识符。布局文件至少应包括“to”中定义的命名视图 from:将添加到与每个项关联的Map中的列名列表。 to:应该在“from”参数中显示列的视图

2.1K10

Android使用Toast显示消息提示框

Toast类用于在屏幕中显示一个消息提示框,消息提示框没有任何控制按钮,并且不会获得焦点,经过一段时间后自动消失。通常用于显示一些快速提示信息,应用范围非常广泛。...Toast toast=Toast.makeText(this,”要显示的内容”,Toast.LENGTH_SHORT); (2).调用Toast类提供的方法来设置消息提示框的对齐方式、页边距、显示的内容等等...setView(View view) 用于设置将要在提示框中显示视图 (3).调用Toast类的show()方法显示消息提示框。...需要注意的是,一定要调用方法,否则设置的消息提示框将不显示。 下面通过一个具体的实例来说明如何使用Toast类显示消息提示框。 res/layout/main.xml: <?...toast.setView(ll);//设置消息提示框中要显示视图 toast.show();//显示消息提示框 } } 效果如图: ?

4.2K20

ViewPager 详解(二)—详解四大函数

前言:上篇中我们讲解了如何快速实现了一个滑动页面,问题在于,PageAdapter必须要重写的四个函数,它们都各有什么意义,在上节的函数内部为什么要这么实现,下面我们就结合android的API说明,...viewpager不直接处理每一个视图而是将各个视图与一个键联系起来。这个键用来跟踪且唯一代表一个页面,不仅如此,键还独立于这个页面所在adapter的位置。...方法实现的功能是移除一个给定位置的页面。适配器有责任从容器中删除这个视图。这是为了确保在finishUpdate(viewGroup)返回时视图能够被移除。...(不再显示视图),另一个是新增显示视图(即将显示视图) 在上一章的代码中,我们是这样做的: @Override public Object instantiateItem(ViewGroup container...所以在这里我们返回postion与container.addView(viewList.get(position));里的viewList.get(position)这个视图对应起来。

41230
领券