何时获取自定义视图的宽度和高度属性

时间:2012-07-03 14:30:57

标签: android android-fragments android-view

我有一个名为Class的{​​{1}},它是LineGraphView的子类。我希望能够将一些数据传递给此视图,以便它可以在其View方法中进行相应的绘制。

分析片段(引用视图并调用方法)

onDraw()

我的问题是,如果我希望能够使用LineGraphView altitudeGraph; LineGraphView speedGraph; @Override public View onCreateView(LayoutInflater inflater, ViewGroup group, Bundle saved) { super.onCreateView(inflater, group, saved); View view = inflater.inflate(R.layout.analysisfrag, group, false); this.altitudeGraph = (LineGraphView) view.findViewById(R.id.linegraph_Altitude); this.speedGraph = (LineGraphView) view.findViewById(R.id.linegraph_Speed); return view; } getWidth()访问该视图宽度和高度属性,我什么时候可以这样做,因为到目前为止返回的所有内容都是getHeight()

我是否需要创建一个监听器,让0父母知道它可以被访问?

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您已经在创建自己的自定义视图,我只需添加一些带有getter / setter的私有变量,以获取您需要传递的信息。从那里,只需处理onDraw()方法中的绘图 - 从那里,您可以获得View的宽度和高度(或者只是Canvas的宽度和高度,可能是相同的值)。

答案 1 :(得分:0)

答案在这里:https://stackoverflow.com/a/3594216/969325 基本上你太早调用getWidth / height(在onCreate期间)。我相信你可以使用一个处理程序在onCreate之后获取它。你也可以试试这个:https://stackoverflow.com/a/10118459/969325(使用onWindowFocusChanged)。