Как я могу написать onCreateView как onViewCreated - PullRequest
0 голосов
/ 28 января 2020
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.tab1, container, false);

    }

У меня есть этот код для моего фрагмента, но он не позволяет мне использовать findViewById, поэтому я хочу сделать его onViewCreated, но в нем есть контейнер и вкладка, так что кто-нибудь может мне помочь?

Ответы [ 3 ]

1 голос
/ 28 января 2020

Как сказал @SantanuSur

Вы должны написать view.findViewById. перед оператором возврата иначе код будет недоступен

проблема решена.

0 голосов
/ 29 января 2020

Используйте getView () или параметр View из реализации метода onViewCreated. Возвращает представление root для фрагмента (возвращенного методом onCreateView ()). При этом вы также можете использовать findViewById ().

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    ImageView imageView = (ImageView) getView().findViewById(R.id.foo);
}

Поскольку getView () работает только после onCreateView (), вы не можете использовать его внутри методов onCreate () или onCreateView () фрагмента.

0 голосов
/ 28 января 2020

onCreateView вызывается при создании представления. Здесь вы делаете вещи, чтобы настроить вид. onViewCreated вызывается после того, как представление было создано. Здесь вы можете установить значения и делать другие вещи.

Это объясняется в справочнике API здесь .

...