がどのようにプログラムでが作成を取得するために、プログラムで作成されたビューの高さを推定しますRelativeLayoutの高さ(すなわち、それは本当に測定することができます)その中のすべてのビューを追加した後?私はプログラムでボタンを作成し、RLの子要素にする必要があり、マージンと整列を設定し、それらをRLに追加して、RLの高さを測定することができます。普通rl.getHeight() 0を返します。私はこのコードを使用:アンドロイド -
rl.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
int rlHeight=rl.getMeasuredHeight();
そしてネクサス5(API 23)すべての[OK]を、しかし、API 17と他のデバイス上で(私が覚えているとして、4.2か何かで)それはNPEを投げます。何をすべきか?
P.S. OnGlobalLayoutListenerとOnPreDrawListenerは、setParams(...)を呼び出してRLを外側のレイアウトに追加する前に高さを測定する必要があるため、okではありません。
「実行時のAndroidビューのサイズの決定」の可能な複製(http://stackoverflow.com/questions/3779173/determining-the-size-of-an-android-view-at-runtime) – Dom