Android自定义控件在scrollview中设置高度不起作用,已经重写了 onMeasure方法 3C

布局:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:id="@+id/title_template"
            android:layout_width="match_parent"
            android:text="hahahah"
            android:layout_height="700dp" />

        <com.tky.mpchart.View.BarChart2View
            android:id="@+id/fl_chart2"
            android:layout_below="@+id/title_template"
            android:layout_width="match_parent"
            android:layout_height="600dp" />
    </RelativeLayout>
</ScrollView>

    自定义控件:

     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    this.setMeasuredDimension(this.measureWidth(widthMeasureSpec), this.measureHeight(heightMeasureSpec));
}

private int measureWidth(int measureSpec) {
    int result = 100;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize = MeasureSpec.getSize(measureSpec);
    if(specMode == 1073741824) {
        result = specSize;
    } else if(specMode == -2147483648) {
        result = Math.min(result, specSize);
    }

    return result;
}

private int measureHeight(int measureSpec) {
    int result = 100;
    int specMode = MeasureSpec.getMode(measureSpec);
    int specSize = MeasureSpec.getSize(measureSpec);
    if(specMode == 1073741824) {
        result = specSize;
    } else if(specMode == -2147483648) {
        result = Math.min(result, specSize);
    }

    return result;
}

2个回答

你把RelativeLayout的高度改成wrap_content看看

qq_23146625
qq_23146625 已经解决了,是硬件加速问题。关闭就好了,谢谢。。。
3 年多之前 回复

你的吧ScrollView 里面的那层换成linearlayout

http://blog.sina.com.cn/s/blog_6cf2ea6a0102v61f.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
自定义控件的onMeasure方法详解
在我们自定义控件的时候可能你会用到onMeasure方法,下面就详细的给大家介绍一下这个方法: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec)
Android自定义控件之onMeasure详解
  在Android开发中往往需要根据需求对原生控件进行自定义,其中主要涉及到的就是onMeasure,onLayout和onDraw三个方法的重写与使用,其中onMeasure是其中最复杂的一个方法,很多程序员仅仅知道该方法用来测量大小,却不知道何时调用,如何去用,本文就对利用Linearlayout的源码来解析onMeasure. 1.何时调用onMeasure  onMeasure方法的作用...
Android之自定义控件onMeasure
本课程讲解Android自定义控件的原理,实现过程,并讲解当前主流项目中的自定义效果n课程包括但不限于n1-自定义控件原理方法介绍n2-自定义控件基本效果的绘制n3-各种效果绘制,课程计划在50课时以上
自定义控件---OnMeasure()方法分析
自定义View的第一步就是要测量Measure控件的大小,所以了解OnMeasure至关重要 首先说说MeasureSpec类protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec);
自定义控件的onMeasure方法讲解
这个类是重新测量控件的大小的方法.父元一个素分给子控件的地方的大小,会传入两个参数–widthMeasureSpec和heightMeasureSpec.这两个参数是以参数的形式而不是以参数传递过去的 可以通过下面的代码获取参数的值 int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(
Android自定义控件之测量onMeasure
当Android原生控件无法满足开发需求时,需要自己来创造view,自定义控件。自定义控件分三步来完成:测量(onMeasure),布局(onLayout),绘制(onDraw)。今天主要介绍自定义流程的第一步-测量,通常一个布局文件的控件的简单嵌套,显示如下: LinearLayout里面有两个子view:TextView,RelativeLayout(里面又有两个TextView
Android自定义控件之onMeasure
遵循系统的要求: 1.确保大于min值;protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension( getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec),
Android自定义控件onMeasure方法简单的重写
写一个自定义控件,只写了onDraw方法,在XML文件中使用,设置宽高为wrap_content,发现在canvas上画的内容很少,但canvas占的空间是整个屏幕,其它控件被覆盖了, 因为对自定义控件使用的也不是很熟练,所以猜测是因为没有重写onMeasure方法,后面在网上找了下资料,试着去重写了onMeasure方法,将问题解决,在此做个记录,以便 以后查看。        下面以测量控
ScrollView 中,子控件高度不起作用
ScrollView 中,子控件高度不起作用的解决方法为: 在ScrollView里添加 android:fillViewport=”true”, 还有个低级错误要注意的,ScrollView下只能有一个子控件
自定义View中的onMeasure,onLayout,onDraw
android中经常会需要自定义View,在自定义View时
Android 自定义控件之测量(onMeasure)初步
Android 测量(onMeasure)
ScrollView设置matchparent的时候不起作用
在做android开发的时候使用ScrollView时会遇到一个问题是ScrollerView设置了高度为matchparent,但会发现ScrollView显示的高度无法填充整个屏幕,我在网上搜索原因,发现ScrollView有一个属性fillViewport,只有当设置 android:fillViewport=&quot;true&quot;时,ScrollView才会填充整个屏幕。在此flag一下。。。。...
1_Android之自定义控件onMeasure
Android基础入门视频培训课程,该教程内容涵盖Android入门开发基本技能(环境搭建、Lineralayout、RelativeLayout、Button事件、Activity、启动模式等)、自定义控件(Handler、BroadCastReceiver、Notification、AlertDialog)、数据存储、网络开发(HttpClient)、android异步开发等。
设置ScrollView 里面的布局高度为match_parent不起作用
xml: 视图: 修改: 视图:
自定义控件之onMeasure解析01
好吧,为何要写这个系列的文章呢,因为最近看了一些源码,很多源控件都是自定义控件,因此有必要重新对自定义控件进行系统的学习。 知识点:自定义控件一般继承View,也可直接继承已有的控件。不管哪种情况,核心思想还是按照:onMeasure->onLayout->onDraw这个步骤来。 1.onMeasure() @Override protected void onMeasure(in
Android 自定义控件源码分析----谈Android自定义控件中 onMeasure()方法处理 wrap_content 情况的必要性
这是一篇与 Android 自定义控件相关的源码分析的文章. 主要从源码的角度分析自定义控件时, onMeasure() 方法处理其宽或高在布局文件中被设置为 wrap_content 时的必要性.
lua 根据图片高度设置scrollview高度
一个Scrollview 要展示两张不同长度的图片,写两个固定长度的Scrollview未免太浪费,就看了一下源码,找到了一个可以设置Scrollview滚动区域的方法。setInnerContainerSize(cc.size()) 下边是我自己封装的方法,传scrollview 和一个图片变量名进去function KaengRuleLayer:changeScrollviewHight(...
自定义控件初学篇——onMeasure()和onLayout()方法
通过自定义View,我们可以画出一些简单的图形并进行应用。上一篇中我讲了自己对onDraw()方法的一些理解和运用,今天就来讲讲onMeasure()和onLayout()两个方法的理解和使用。
自定义控件:onMeasure 方法和测量原理的理解
前言众所周知,自定义 ViewGroup 中这几个方法非常重要:onMeasure, onLayout。初学者学习自定义 View 时,想必对 onMeasure 比较困惑,onMeasure 是什么,为什么要测量,怎么测量?网上有很多关于 onMeasure 的文章,诸如《onMeasure 详解xxx》、《onMeasure xxx源码分析》。好像都不能彻底解决心中的疑惑。本文就从“是什么”,“
Android:设置ScrollView中的控件高度充满父窗体
ScrollView属性中设置: android:fillViewport=”true”
android中对View的onMeasure()方法的理解
在android开发中,很多人对自定义View是望而生畏,我也一样,但这又是向高级进阶的必经之路,主要是对View里面的很多方法不知道怎么理解,其中一个就是onMeasure()方法,网上有很多这样解释说明,可能是由于我的领悟力有限,一直没能搞明白,今天有点空,好好研究一下,并记录下来,也希望对大家有所帮助。 首先,我自定义一个MyView,继承于View,onMeasure()方法不做处理,直接
CKEditor在IE8下设置的高度不起作用
rn [img=https://img-bbs.csdn.net/upload/201403/28/1395987493_564692.jpg][/img]rn[img=https://img-bbs.csdn.net/upload/201403/28/1395987542_770388.jpg][/img]rn火狐正常,ie不起作用
div设置百分比高度不起作用
1.首先检查父元素高度是否正常 父元素必须是height属性,min-height是不管用的, 2. 检查父元素是否是flex布局 flex元素不管用
Android中动态计算ListView高度方法(适用于ScrollView嵌套)
在Android开发中,有时候会遇到几个ListView同时显示在布局上,并且能够同时滚动的需求,大家都知道用ScrollView嵌套就好了,但嵌套完成后就会发现ListView只能那个显示一个item,这时候就需要动态计算ListView的高度,代码如下:private void setListViewHeightBasedOnChildren(ListView listView) {
设置文本框的高度为什么不起作用?
rnrn 如上所写,在设计模式下可以看到文本框的高度确实变小了,rn 但是一预览,高度却不是设计时的 高度,比16px要高很多。请教各位是什么原因造成的呢?rn
Android中自定义view的onMeasure()方法详谈
背景 理解MeasureSpec MeasureSpec 情况分析 结合图例分析 总结 A little bit of progress every day!Come on! 背景 首先关于自定义view的实现过程我这里就不去实现了,因为这部分总体来说是不难的,自己写个类去继承View,然后实现构造方法,重写onMeasure()方法、onLayout()方法(继承View...
关于自定义控件的onMeasure()其中的MeasureSpec
我在看一个项目的时候,发现项目用到了自定义控件,其中一个控件是继承了GridView,并且重写了onMeasure()方法,按照一般的理解,onMeasure()是用来计算view大小的,它传进来两个参数onMeasure(int widthMeasureSpec, int heightMeasureSpec),这个MeasureSpec是一个32位的int,是用来规定view的绘制大小的,其中的
自定义控件中onMeasure,onLayout,onDraw的使用
在创建自定义控件的时候,就必须要使用这个onMeasure,onLayout,onDraw个方法对自定义控件进行绘制. 简要说一下这三个方法的用法 1.onMeasure():测量视图的大小. 继承view,且view是match_parent;        宽高全部都是使用系统的.super.onMeasure(widthMeasureSpec, heightMeasureSpec)宽
Android开发之自定义控件(一)---onMeasure详解
坚持。。。
[自定义控件]关于自定义控件的高度
新建了一个UserControl,这个控件的高度是固定的。rn在设计阶段我想让UserControl不显示可改变高度的小圆点,如何才能做到?rn见下图:rn[img]http://img.my.csdn.net/uploads/201402/10/1392019650_6201.png[/img]rn[img]http://img.my.csdn.net/uploads/201402/10/1392019651_9745.png[/img]rnrn如何让UserControl和TextBox一样?
Android中自定义控件的自定义属性的方法
问题背景 在自定义的控件中,原有的自带属性可能无法满足自己的需求,这时候就需要自定义属性 解决方案 自定义属性一般分为以下 个步骤: 编写自定义属性的xml文件 参照Android源码中属性定义的方法编写xml文件,Android源码中属性集文件的路径如下:你的安卓SDK路径\Sdk\platforms\android-24\data\res\values\attrs.xml,参照TextVie...
Android自定义控件中常见的方法
/** * onMeasure方法的作用时测量空间的大小 * @param widthMeasureSpec * @param heightMeasureSpec */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
Android中对于onMeasure()的理解
这两天比较空闲,所以就在研究自定义view。写了几个demo,但是由于有些资料看的不是很懂,所以感觉就比较烦躁。尤其是在onMeasure中的很多参数看的不是很懂,所以今天重新来看了这个方法。 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(w
自定义控件的高度
view里面存在变更高度的时候,有几种方法: 1、 LayoutParams params = view.getLayoutParams();// 注意得到相应的布局参数 params.height = 300; view.setLayoutParams(params); 这种方法的弊端是在UI界面并不能即使刷新,这个时候,可以使用 view.post...
android 设置shape不起作用
andorid布局中通过xml文件通过shape设置textview圆角边框。但是不起作用。弄了好久才发现问题。 希望遇到这个问题的朋友少走弯路。 android 在布局文件中设置了textview的背景属性。 <TextView android:id="@+id/login" android:layout_width="match_p
Android 关于ScrollView的子布局无法设置高度的问题
由于Scrollview 的作用是滑动显示 所以他的子布局 必须设置 wrap。。。。。 而且只能有一个 之后可以随意布局
【Android】兼容Scrollview的可动态设置高度Listview
常用 Scrollview嵌套Listview写法如下: public class NoScrollListView extends ListView { /** * 构造 */ public NoScrollListView(Context context) { super(context); } /** * 构造 */ public NoScrollL...
listview scrollView 滑动冲突 listview 动态设置高度
自己封装的base里事件,解决冲突 @Override protected void initEvent() { //解决滑动冲突 homeList.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEven...
android gridview 设置高度的方法和一些疑惑
学习android也有一段时间了,开始试着模仿一些app,但实际开始做才发现有很多细节问题是自己不知道的,比如就遇到了标题所述的问题。参考了http://blog.csdn.net/liuwan1992/article/details/52659135?locationNum=5&fps=1。问题解决了,就有一点,不太明白。 “ 第一个 item 去哪里了,就这样被吃掉了嘛,查了查资料,说
初识onMeasure()——解决ScrollView内嵌ListView滑动冲突
从源码分析,以简单高效地方式——重写onMeasure()方法,来解决ScrollView内嵌ListView滑动冲突。
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池