2016-07-06 2 views
-1

Model One:Different между двумя синтаксисом адаптера в андроида

private Context mContext; 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate("layout name",parent, false); 
} 

Model Two:

private Context mContext; 
public View getView(final int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = (LayoutInflater) mContext 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    convertView = inflater.inflate("layout name", null); 
} 

Разница между этими двумя отрывками:

convertView = inflater.inflate("layout name" , null);

и

convertView = inflater.inflate("layout name", parent, false);

+0

нажмите кнопку Ctrl на клавиатуре, а затем нажмите на надуть метод. Это приведет вас в суперкласс. Там вы можете прочитать обо всех методах, доступных в этом классе, наряду с описанием –

+0

. Мне кажется, вам просто нужно посмотреть этот https://developer.android.com/reference/android/view/LayoutInflater.html –

ответ

2

надуть 2 колясками: inflate(int resource, ViewGroup root)

надуть 3 колясками: inflate(int resource, ViewGroup root, boolean attachToRoot)

ресурс: INT: ID для ресурса компоновки XML для загрузки (например, R.layout.main_page)

root: ViewGroup: Необязательный вид, являющийся родителем сгенерированной иерархии (если attachToRoot является истинным), или просто объект, который предоставляет набор значений LayoutParams для корня из возвращаемой иерархии (если attachToRoot является ложным).

attachToRoot: boolean: следует ли привязать к системе параметр завышенной иерархии к параметру root? Если false, root используется только для создания правильного подкласса LayoutParams для корневого представления в XML.

See Android Docs.

+0

вы понимаете. –

+0

1.inflate (int resource, ViewGroup root) 2.inflate (int resource, ViewGroup root, boolean attachToRoot) ViewGroup принимает значение null, но студия Android показывает предупреждение о предоставлении значения null для ViewGroup («Избегайте пропускать null в качестве view root (необходимо, чтобы разрешить параметры макета на корневом элементе раздутого макета) ») –

+0

его необязательный вид, являющийся родителем сгенерированной иерархии. Если вы используете только одно представление, то передаете null, а если вы несколько видите в иерархии, то вы делаете это вновь созданное представление в качестве родительского элемента этого представления, передав его как параметр. Надеюсь, вы поймете. Если он поможет, пожалуйста, подумайте о прочтении или отметке. –

2

Разница в том, что вы можете указать родительский элемент для раздутого макета и можете контролировать, следует ли прикреплять раздутый макет к родительскому объекту. Вы можете найти документацию LayoutInflaters here.

КПП. Вы можете использовать более читаемый синтаксис, как этот:

final View viewToAdd = LayoutInflater.from(this).inflate(layoutId, null); 
Смежные вопросы