хранение ссылок на раздутые пользовательские представления - PullRequest
1 голос
/ 26 апреля 2010

Во время исследования того, как создавать собственные составные представления в Android, я часто сталкивался с этим паттерном (пример из блога Orange11 ):

public class FirstTab extends LinearLayout {
private ImageView imageView;
private TextView textView;
private TextView anotherTextView;

public FirstTab(Context context, AttributeSet attributeSet) {
    super(context, attributeSet);

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.firstTab, this);
}

}

Я в основном понимаю, как это работает, за исключением части, где вызывается inflate (). В документации сказано, что этот метод возвращает объект View, но в этом примере автор нигде не сохраняет результат. После инфляции, как новое представление, созданное из XML, ассоциируется с этим классом? Я думал о том, чтобы отнести это к «этому», но это кажется очень неправильным.

спасибо за любые разъяснения.

1 Ответ

2 голосов
/ 26 апреля 2010

Ссылка на this будет корнем группы просмотра. Посмотреть здесь: http://developer.android.com/reference/android/view/LayoutInflater.html#inflate(int, android.view.ViewGroup)

Это означает, что он надувает назначенное представление из XML с this в качестве родительского представления. Xml заканчивается внутри линейного макета, определенного классом.

edit: вставьте полную ссылку, поскольку я не могу получить URL-адреса с квадратными скобками для правильного экранирования

...