2011-12-28 186 views
1

我做了一個自定義的視圖,在viewpager的幾個片段中使用。我什麼時候需要膨脹自定義視圖的佈局?

視圖始終存儲爲片段的字段。我在構造函數中膨脹了佈局,並且一切都很好地翻動了頁面。因爲總是創建下一個片段,所以視圖顯示沒有任何問題。但是如果我回去重新創建一個被破壞的片段視圖,並且它給了我一個錯誤,因爲我仍然使用相同的自定義視圖,因爲構造函數沒有被調用,所以這個視圖沒有被誇大。

那麼,我什麼時候需要膨脹自定義視圖的佈局呢?我不認爲代碼會清除任何東西,但如果需要,我可以交付。

回答

1

在這個函數中:

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.game_menu, menu); 
    return true; 
} 

基準是HERE

+0

我說的是正常的CustomView。不是關於菜單。你確定你正確地閱讀了這個問題,或者回答了正確的問題嗎? – user1014917 2011-12-28 11:41:53

+0

如果不是菜單,構造函數上的充氣代碼(我假設oncreate)必須工作。 – vgonisanz 2011-12-28 11:49:55

+1

總是一個活動被破壞,當你回來時再次創建。如果你打開方向,就和onDestroy一樣,然後再次創建。該構造函數必須被調用 – vgonisanz 2011-12-28 11:51:16

1

我有一個類DynamicRowView含有視圖。您可以創建一個類,並調用這個類在你的主文件:

public class DynamicRowView 
{ 
    public View getView(int layout_id,Activity context) 
    { 
     View view = null; 
     view = context.getLayoutInflater().inflate(layout_id, null); 
     return view; 
    } 
} 

,並在您想要的View在主類中這樣寫:

dynamic_row_view = new DynamicRowView(); 

View view = dynamic_row_view.getView(R.layout.row_menu_list, MenuListingPage.this); 
相關問題