Создать пользовательский компонент на основе LinearLayout, объявив макет в XML - PullRequest
6 голосов
/ 13 мая 2010

Я пытался создать составной элемент управления в Android 1.5 (как описано здесь ), но не смог найти хороших примеров того, как это сделать, используя файл XML для указания раскладка. Я в порядке с созданием Activity, а затем загрузкой XML-файла, используя следующее в конструкторе:

setContentView(R.layout.main);

Однако я хочу сделать это в подклассе LinearLayout - чтобы я мог использовать этот составной компонент в других макетах XML. Что-то вроде:

public class CustomView extends LinearLayout
{
  public CustomView(Context context) {
       super(context);
       setupView();
  }
  public CustomView(Context context, AttributeSet attrs)
  {
      super(context, attrs);
      setupView();
  }
  public void setupView()
  {
    setContentView(R.layout.custom); // Not possible
  }
}

Как правильно это делать?

1 Ответ

14 голосов
/ 13 мая 2010

Вы должны «надуть» макет для своего пользовательского представления:

LayoutInflater layoutInflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
layoutInflater.inflate(R.layout.custom, this, true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...