以下のように、LinearLayoutの高さをmatch_parentとして設定しています。
<LinearLayout
Android:id="@+id/list_layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="vertical" >
このLinearLayoutの高さを取得したいと思います。
以下のコードを使用しました:
LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
int h = ll_list.getHeight();
ただし、nullを返します。
どのようにできるのか?
まず第一に、あなたのLinearLayout
idは_left_layout
_ではなく_list_layout
_です。
また、ll_list.getHeight()
は、まだ描画されていない場合は0(およびll_list.getWidth()
)を返します。
解決策は、ビューがレイアウトされた後に高さを取得することです。
_ll_list.post(new Runnable(){
public void run(){
int height = ll_list.getHeight();
}
});
_
そして、_ll_list
_がfinal
であることを確認してください。
LinearLayout ll_list = (LinearLayout)findViewById(R.id.list_layout);
^^^^^^^^^^
ビューが初期化されるのを待つ必要があります。最初にビューツリーオブザーバーを使用します。ビューが作成されるまで待機します。