2011-08-03 8 views
0

私はカスタムRelativeLayoutを持っており、その中にいくつかのミニビューを作成する関数があります。 私はコンストラクタでその関数を呼び出す場合、それは大丈夫です。しかし、私はその機能を呼び出す前にレイアウトの次元を知りたい。 したがって、私は関数を呼び出すonVisibilityChangedonWindowFocusChanged私はレイアウトされているので、レイアウトの寸法があります。問題は、私がそこでそれを行う場合、私は例外を取得することです。私はその私はonVisibilityChangedまたはonWindowFocusChanged on androidで何かを呼び出すとクラッシュするカスタムレイアウト

handler.postDelayed(new Runnable(){ 
     public void run(){ 
     AnONcamelCaseFUNction(); 
     } 
     }, 2000); 

のようにコンストラクタで機能を遅らせた場合 はまた、私は同じエラーを取得します(エラーは無関係なスタックトレースが役立つことはありませんです。)私はそれが「に関係しているダと混乱していないと思いますすでに入力済みの場合は表示されますが、何をすべきか分かりません。

更新日: ビューを追加する方法は次のとおりです(1つの大きなRelativeLayoutに多くのlinearLayoutsがあります)。 post.executionsで動作します。コンストラクタでは動作します。

LinearLayout cells = null; 
     RelativeLayout.LayoutParams tr; 
tr = new RelativeLayout.LayoutParams(
          LinearLayout.LayoutParams.WRAP_CONTENT, 
          LinearLayout.LayoutParams.WRAP_CONTENT); 
cells = new LinearLayout(context); 
cells.setLayoutParams(tr); 
addView(cells); 

スタックトレース:

固定
08-04 02:29:22.748: ERROR/AndroidRuntime(11355): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.widget.FrameLayout.onLayout(FrameLayout.java:293) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.view.View.layout(View.java:7278) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.widget.LinearLayout.onLayout(LinearLayout.java:1047) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.view.View.layout(View.java:7278) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.view.View.layout(View.java:7278) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.view.ViewRoot.performTraversals(ViewRoot.java:1172) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1921) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.os.Looper.loop(Looper.java:143) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at android.app.ActivityThread.main(ActivityThread.java:4196) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-04 02:29:22.748: ERROR/AndroidRuntime(11355):  at dalvik.system.NativeStart.main(Native Method) 

enter code here 
+0

まあ、完全なスタックトレースとエラーメッセージは何ですか? – EboMike

+0

ビューをどのように追加していますか? RelativeLayout.LayoutParamsから継承しないLayoutParamsをあなたに与えていますか? – EboMike

+0

私はaddviewコード – weakwire

答えて

0

:私は、その関数内でRelativeLayoutのlayoutsParamsを設定しました。

関連する問題