访问Java中的受保护方法(android)

时间:2019-03-27 18:56:11

标签: android protected numberpicker

我正在学习使用android studio做应用程序。我正在构建一个数字选择程序。我想调整号码筹码器的大小。

要调整数字选择器的大小,我在开发人员文档中找到了一种称为onMeasure的受保护方法。 https://developer.android.com/reference/android/widget/NumberPicker

bindMemory

我的问题是我收到一条错误消息“ onMeasure(int,int)已保护android.widget.NumberPicker中的访问”。 我该如何解决?

3 个答案:

答案 0 :(得分:0)

只需阅读下面的method文档,您就会发现:

  

约束:覆盖此方法时,必须调用setMeasuredDimension(int,int)来存储此视图的测量宽度和高度。否则,将触发由measure(int,int)引发的IllegalStateException。调用超类的onMeasure(int,int)是有效的用法。

     

度量的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。子类应重写onMeasure(int,int)以提供对其内容的更好度量。

答案 1 :(得分:0)

只需删除此行:

p_myNumberPicker.onMeasure(100,100);

因为您违反了该方法的访问范围,所以不能像这样调用它。如果您真的要调用它,则必须使用CustomNumberPicker extends NumberPicker,然后在其作用域内调用此protected方法。只有访问范围才符合定义。

答案 2 :(得分:0)

这不是您调整大小的方式。实际上,错误地调用视图的onMeasure会严重破坏事情。由于您将其设置为固定大小,因此只需在定义小部件的xml中为其提供固定的宽度和高度即可。或者,如果要在代码中定义它,请在其布局参数中使用宽度和高度的二分之一。