2012-02-27 2 views
0

inflateを探した後、私はそれがルートビューの意味を理解するのが難しいと感じました。この生成されたxml階層の親ビューか、全体のビュー階層のuppestビューだけですか?
LayoutInflaterのinflateメソッドを使用する場合、ルートビューを設定するにはどうすればよいですか?

私は答えがおそらく前者だと思います。しかし、私は問題に直面しています。場合は、私はこの階層の親ビューを取得することができない場合、私は階層のツリーを膨らませるたびにレイアウトパラメータを設定する必要がありますか?

ここは私のコードです。また、LinearLayoutは親を埋めることができません。 LinearLayoutのlayout_heightlayout_widthwrap_contentに設定する必要があります。 javaファイル内

storage_status.xml

<?xml version="1.0" encoding="utf-8"?> 
<com.android.contacts.StorageStatusView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent"> 

    <View 
     android:layout_height="50px" 
     android:layout_width="50px" 
     android:background="#f00"/> 

</com.android.contacts.StorageStatusView> 

スニペット。

private class QuickActionClickListener implements QuickAction.OnActionItemClickListener { 

    @Override 
    public void onItemClick(QuickAction source, int pos, int actionId) { 
     switch (actionId) { 
      case ACTION_ID_STORAGE_STATUS : 
       final LayoutInflater inflater = getLayoutInflater(); 
       new AlertDialog.Builder(ContactsListActivity.this) 
         .setTitle(UIUtils.getString(ContactsListActivity.this, R.string.storage_status)) 
         .setView(inflater.inflate(R.layout.storage_status, null)) 
         .show(); 

       break; 
     } 
    } 
} 

ありがとうございます。そして、私の貧しい英語のために申し訳ありません。

+0

誰かが以前にこの質問をしたことがわかりました。そしてその答えは明らかに終わった。 http://stackoverflow.com/questions/5026926/making-sense-of-layoutinflater –

答えて

-1

あなたが言ったように、それは生成されたxml階層の親です。親を指定しないでビューを膨張させる場合、レイアウトパラメータを指定する必要があります。

+0

ありがとうございます@ a.ch。 レイアウトパラメータを設定しようとしましたが、ビューがまだ塗りの親ではありません。 (私が過去に同じことをしたとき、それはいつも働いています)。 'attachToRoot'というパラメータを持つ別のオーバーロードinflateメソッドが見つかりました。私はこのフラグをfalseに設定すると、生成されたビューの親ではなく親の親であるビューを与えることができるかどうかは疑問です。 –

+0

どのようにこれらの武器を設定しましたか? –

+0

ビュービュー= inflater.inflate(R.layout.storage_status、null);view.setLayoutParams(新しいLayoutParams(LayoutParams.MATCH_PARENT、LayoutParams.MATCH_PARENT)); –

関連する問題