Как использовать Пикассо в onCreateView? - PullRequest
1 голос
/ 03 апреля 2020

У меня проблема с кодом Пикассо. В моем фрагменте фрагмента ( фрагмент навигационной панели ) находится ImageView, куда я хочу поместить изображение из URL-адресов " image.com ". Код Пикассо выглядит так

Picasso.get().load("image.com")
                .resize(300,200)
                .centerInside()
                .into(photo);

Я не могу записать это в мой HomeFragmentActivity, где код должен быть, потому что findViewById не «работает».

HomeFragmentActivity > Разместить где код должен быть

public class HomeFragment extends Fragment {
    private ImageView photo;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_home /*in this layout is ImageView where Picasso is inserting image from URL addres*/) , container, false);
    }
}

Когда код находится где-то еще (, например, в MainActivity в методе onCreate ), приложение обработает sh. Пожалуйста помоги. Спасибо.

Напишите ниже, что вы предлагаете, может быть, код Пикассо не должен быть в HomeFragmentActivity?

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете объявить это так:

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_home, container, false);
    photo = view.findViewById(R.id.photo);
    Picasso.with(context).load("url")
            .resize(300,200)
            .centerInside()
            .into(photo);
    return view;
}

или

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    photo = view.findViewById(R.id.photo);
    Picasso.with(context).load("url")
            .resize(300,200)
            .centerInside()
            .into(photo);
}
...