frag.getview() всегда возвращает нуль при вызове в действии
У меня есть эта проблема, когда фрагмент.getView() всегда возвращает ноль при вызове внутри другого действия, несмотря на тот факт, что метод onCreateView был переопределен в стороне фрагмента.
Например: в моей деятельности:
frag = new NewBooksFrag();
В моем фрагменте:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View view = null;
view = inflater.inflate(R.layout.new_book_frag, container,true);
return view;
}
но когда я звоню
frag.getView()
это все еще возвращает ноль. Есть идеи, почему это происходит? Потому что в документации по Android четко указано getView():
Msgstr "Получить корневой вид для макета фрагмента (тот, который возвращается onCreateView(LayoutInflater, ViewGroup, Bundle)), если предоставляется."
если это возвращает нуль, как мы можем ссылаться на представление фрагмента?
заранее спасибо
2 ответа
Как упомянуто Visamanath, вы не добавляете свой фрагмент в действие, вы просто создаете его.
Чтобы добавить фрагмент к действию, вы можете сделать это, реализовав его как представление в xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:name="com.example.android.fragments.NewBooksFrag"
android:id="@+id/new_books_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Или, добавив это динамически в коде:
NewBooksFrag frag = new NewBooksFrag();
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, frag ).commit();
Для более подробной информации, пожалуйста, посетите официальный гид
Если вы не пропустили опубликовать часть кода
frag = new NewBooksFrag();
не будет звонить onCreateView()
Вы должны прикрепить фрагмент к деятельности. использование FragmentManager
сделать это.