Загрузка макета в onCreateView для пользовательских настроек - PullRequest
10 голосов
/ 19 января 2011

Можно ли загрузить макет из xml во время вызова onCreateView, я попытался:

  • setLayoutResource (R.layout.test);
  • setWidgetLayoutResource (R.layout.test);

происходит сбой, и я не знаю, что вернуть родительский элемент ViewGroup из аргументов метода?Я также попытался:

  • View view = View.inflate (getContext (), R.layout.test, parent), но это не сработало.

Я назвал корневой макет widget_frame, но это не помогло

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent" 
 android:padding="1dp" android:clickable="false" android:id="@+id/widget_frame">
 <LinearLayout ....

Не могли бы вы сказать мне, что я делаю неправильно, или указать на какой-нибудь рабочий пример.Спасибо

Обновление

Ниже приведено решение о том, как надуть выше макета:

    LayoutInflater inflater =  (LayoutInflater)getContext().
                              getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View view = inflater.inflate(R.layout.test, parent, false);

Ответы [ 2 ]

2 голосов
/ 26 сентября 2012

Если вы используете onCreateView Я предполагаю, что вы используете fragment или расширяете View.В любом случае, проверьте это:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.your_layout, container);
}
0 голосов
/ 25 апреля 2014

Если вы раздуваете макет, вы должны сделать что-то вроде этого:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     return inflater.inflate(R.layout.your_layout, null);
}
...