Загрузка макета в onCreateView для пользовательских настроек
Можно ли загрузить макет из 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);
Ответы
Ответ 1
Если вы используете onCreateView
, я думаю, вы используете либо fragment
, либо расширяете View
.
В любом случае, проверьте это:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.your_layout, container);
}
Ответ 2
Если вы раздуваете макет, вы должны сделать что-то вроде этого:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.your_layout, null);
}