`
freebee
  • 浏览: 15197 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

004. Android界面刷新没有调用OnMeasure

阅读更多

最近写了一个android上chart和table控件,总结了几点关于自定义控件注意点。

1. onLayout 和 onMeasure必须重载。

2. 如果你无法判断自己的大小,在onMeasure的时候只需要调用super的onMeasure即可,同时还必须调用measureChildren。

   2.1 如果没有调用measureChildren,那么在界面刷新的时候就不能保证每个元素的rendering都是可预测的。

3. 重载onLayout不能改变view的hierachy,否则会陷入endless loop。不停的调用onLayout。

4. 响应用户的手势操作,可以通过调用layout方法,改变某个元素的位置。这样的好处是可以避免对整个控件的relayout。

   4.1 缺点是我们必须保存元素的位置,否则在下次必须全局layout的时候就丢失了当前元素的位置信息。因为layout方法不会将位置信息保存到layoutparam中。

分享到:
评论
1 楼 xiaojiaqiao 2011-09-01  
能改变view的hierarchy,不过要调用的是addViewInLayout,removeViewInLayout等方法。

相关推荐

    安卓九宫格布局源码(Android Studio)

    在Android开发中,九宫格布局是一种常见的UI设计模式,尤其在设置界面或者应用选择页面中经常被使用。本项目提供了在Android Studio环境下实现九宫格布局的源码,适用于最低SDK版本为22的设备。 九宫格布局的核心是...

    自定义下拉刷新viewgroup

    这是一种常见的用户界面交互模式,用户可以通过在顶部滚动列表时向下拉动来触发数据的刷新。这种设计常见于新闻应用、社交媒体应用等,使得用户可以轻松获取最新内容。 在Android中,我们通常会使用...

    Android应用源码之自定义表格自动刷新数据.zip

    在Android开发中,自定义表格和自动刷新数据是常见的需求,尤其在展示动态更新的数据时。这个压缩包“Android应用源码之自定义表格自动刷新数据.zip”很可能包含了一个示例项目,展示了如何在Android应用中实现这样...

    Android ListView下拉刷新 Demo(实用1).zip

    这个"Android ListView下拉刷新 Demo(实用1).zip"压缩包提供了一个实际应用中的下拉刷新功能的示例,非常适合用于毕业设计或课程设计项目。在这个Demo中,我们将探讨以下几个关键知识点: 1. **SwipeRefreshLayout*...

    Android自定义View仿腾讯TIM下拉刷新View

    在Android开发中,自定义View是一项重要的技能,它允许开发者创造出独特且富有创意的用户界面。本篇文章将探讨如何创建一个模仿腾讯TIM应用下拉刷新效果的自定义View。这个效果的特点是,当用户下拉时,界面上的小球...

    android自定义组件(六) 刷新自定义控件

    在Android开发中,自定义组件是一项重要的技能,它允许开发者根据特定需求打造独特的用户界面。本文将深入探讨如何实现一个自定义的刷新控件,以此为应用增添个性化和交互性的功能。我们将基于提供的链接...

    仿新浪微博下拉刷新继承FrameLayout.zip

    在安卓应用开发中,"仿新浪微博下拉刷新继承FrameLayout.zip"是一个常见的实践案例,它主要展示了如何在Android应用程序中实现类似新浪微博的下拉刷新功能。这个项目源码旨在帮助开发者,尤其是那些正在进行毕业设计...

    Activity-View.rar_android

    在Android开发中,View是构建用户界面的基本元素,它的刷新机制是开发者必须理解的重要概念。本文将深入探讨Android中View的刷新方法,并提供相应的用法总结。 首先,我们需要理解Android View的绘制流程,这通常...

    RefreshLayout

    在Android应用开发中,"RefreshLayout"通常指的是下拉刷新功能,这是一个常见的用户界面特性,允许用户通过在列表或网格视图顶部向下拉动来获取最新的数据。这种设计模式被广泛应用于新闻应用、社交媒体应用以及各种...

    Android 自定义View (四) 视频音量调控

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。本教程将深入探讨如何实现一个自定义的音量调控View,以提供更直观、更个性化的音量控制体验。我们参考的...

    安卓Android源码——draw1.rar

    它们共同构成了Android界面的基础。 2. **绘图流程**:当一个View需要绘制时,会调用`onDraw()`方法。在这个方法中,开发者可以使用Canvas对象进行绘制操作,如画线、矩形、文本等。Canvas提供了丰富的绘图API,如`...

    Android中View绘制流程以及invalidate()

    在Android开发中,View是构建用户界面的基本元素,它负责将数据可视化并处理用户的交互事件。`invalidate()`方法是View类中的一个重要成员,用于触发View的重绘操作。本篇文章将深入探讨Android中View的绘制流程以及...

    Android自定义控件案例汇总2(自定义开关、下拉刷新、侧滑菜单)

    在Android开发中,自定义控件能够满足开发者对界面及交互的个性化需求,提升应用的用户体验。本篇文章将深入探讨如何实现三个常见的自定义控件:自定义开关、Listview的下拉刷新以及侧滑菜单。 首先,让我们关注...

    android自定义View-手绘地图

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据特定需求创建独特且功能丰富的用户界面。本项目“android自定义View-手绘地图”着重于如何利用自定义View来绘制地图,提供了两种实现方式:自定义...

    android自定义时钟WatchView

    在Android开发中,自定义View是一项重要的技能,它允许开发者根据需求创建独特的用户界面元素。本案例中的"WatchView"就是一个自定义View的例子,用于构建一个具有时针、分针和秒针的模拟时钟。这个自定义组件可以...

    android 自绘园绕圆圈转动

    9. **刷新机制**:Android系统会自动调用`onDraw()`方法进行视图更新,但如果你想手动触发重绘,可以调用`invalidate()`或`postInvalidate()`。 通过以上步骤,你可以创建一个自定义的View,实现图片绕圆圈转动的...

    android自定义圆形进度条

    - 实现动画效果,可以使用ValueAnimator或ObjectAnimator来平滑地改变进度值,同时在每次动画更新时调用`invalidate()`刷新界面。 4. **测量与布局**: - 自定义控件需要在`onMeasure()`方法中计算合适的大小。...

    安卓动画效果相关-Android实现水流波动效果WaveView.rar

    本资源"安卓动画效果相关-Android实现水流波动效果WaveView.rar"提供了一种实现水流波动视觉效果的方法,这通常用于创建更具动态感和交互性的界面元素。以下是关于如何在Android中实现这种水流波动效果的详细解释: ...

Global site tag (gtag.js) - Google Analytics