У меня есть FragmentActivity
на первой вкладке TabHost
, а FragmentActivity
содержит ViewPager
.
Метод setAdapter()
ViewPager
устанавливает FragmentPagerAdapter
с набором Fragment
s. Цель состоит в том, чтобы иметь перелистываемые изображения на первой панели TabHost
.
Чтобы проверить это, я загрузил кучу изображений, которые я хранил локально в каталоге проекта drawable
. Все работало прекрасно.
После тестирования этой первоначальной настройки я загружаю кучу URL-адресов изображений с веб-службы REST. Я хочу, чтобы эти изображения лениво загружались в ViewPager
, и я попытался вызвать метод load()
Пикассо в трех местах:
Метод
onCreateView()
изFragment
sViewPager
(то же место, где я ранее загружал изображения из локального каталогаdrawable
).@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View myFragmentView = inflater.inflate(R.layout.layout_fragment, container, false); ImageView imageView = (ImageView)getView().findViewById(R.id.fragment_image); String url = getArguments().getString(IMAGE_RESOURCE_URL); Context context = getActivity(); Picasso.with(context).load(url).fit().into(imageView); return myFragmentView; }
Метод
onViewCreated()
Fragment
sViewPager
.@Override public void onViewCreated(View view, Bundle savedInstanceState){ Context context = getActivity(); String url = getArguments().getString(IMAGE_RESOURCE_URL); ImageView imageView = (ImageView)view.findViewById(R.id.fragment_image); Picasso.with(context).load(url).fit().into(imageView); }
Метод
onInstantiateItem()
FragmentPagerAdapter
.@Override public Object instantiateItem(ViewGroup container, int position) { View v = inflater.inflate(R.layout.layout_fragment, container, false); Context context = Tab1Activity.this; String url = getItem(position).getArguments().getString("IMAGE_RESOURCE_URL"); ImageView imageView = (ImageView)v.findViewById(R.id.fragment_image); Picasso.with(context).load(url).fit().into(imageView); return v; }
Ни один из этих методов не сработал. Я знаю, что это не проблема с Пикассо, потому что на днях я попробовал использовать Пикассо в ListView
, и это сработало как шарм. Что я делаю не так ?