2017-08-29 205 views
0

我在Android中遵循一個新手教程,目前已經引入了RecyclerView。ViewGroup參數在'onCreateViewHolder'中代表什麼

public NumberViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
     Context context = parent.getContext(); 
     int layoutIdForListItem = R.layout.number_list_item; 
     LayoutInflater inflater = LayoutInflater.from(context); 
     View view = inflater.inflate(layoutIdForListItem,parent,false); 
     NumberViewHolder holder = new NumberViewHolder(view); 
     return holder; 
    } 

什麼是parent變量在我的應用程序代表了什麼?它是否代表應將所有這些視圖添加到的佈局?如果那是真的,那我怎麼不需要明確地打電話給addView呢?

+1

基本上,它只是'RecyclerView'。它主要傳遞給該方法,因此您可以將它提供給'LayoutInflater',以便它可以將適當的'LayoutParams'應用於充氣的'View'。 –

+0

@MikeM。爲什麼我的視圖需要RecyclerView佈局參數? – Bula

+0

如果你的'View'沒有在膨脹期間設置'LayoutParams',那麼你在XML中的所有'layout_ *'屬性都會丟失,並且會被默認設置卡住。例如,當'layout_width'丟失時,這在垂直'RecyclerView'中是非常明顯的,'View'全部包裹它們的寬度,所以它們不覆蓋'RecyclerView'的全部寬度。 –

回答

0

https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#onCreateViewHolder(android.view.ViewGroup,INT)

父:所述的ViewGroup到其中它被綁定 到適配器位置之後新的視圖將被添加。

因此,它基本上只是RecyclerView視圖,其中適當的佈局參數可能會發生通貨膨脹。

+0

好吧,我猜這值得再回答一個問題?爲什麼我需要RecyclerView佈局參數? (並在另一個說明)文件不斷提及一個層次? '從指定的xml資源中填充新的視圖層次結構。'這只是說它正在創建一個ViewGroup,其中包含我所有的視圖? – Bula

0

它代表ViewGroup,新視圖在綁定到適配器位置後將添加到ViewGroup中。這意味着要添加視圖的父代。

相關問題