Вниз  Android-программирование (1-ые посты)
- 25.08.2014 / 23:51
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
andreyKorotayev, У ListView listSelector прозрачный поставь (@android:color/transparent)
__________________
 let live
- 27.08.2014 / 12:05
Naik
  Пользователь

Naik 
Сейчас: Offline
Есть MainActivity, в ней я создаю два fragment, и устанавливаю им свои listener для обработки разных действий.
Затем использую эти фрагменты в FragmentPagerAdapter. Все нормально работает, но если теперь перевернуть устройство,
то MainActivity пересоздастся, соотв. пересоздадутся фрагменты, адаптер, viewpager, но
вот в чем проблема, новые фрагменты адаптер не трогает, а находит старые и сам их пересоздает.
Получается мои новые фрагменты нигде не используются, а как получить ссылки на те, что поресоздались сами по себе?
Если бы не ViewPager, то можно было бы установить тег при транзакции фрагмента и восстановить в MainActivity через
  fingFragmentByTag, но адаптер сам управляет фрагментами..
- 27.08.2014 / 12:30
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Naik, как это сам?
  1. private Fragment findFragmentByPosition(int position) {
  2.     final FragmentPagerAdapter fpa = getFragmentPagerAdapter();
  3.     return getSupportFragmentManager()
  4.         .findFragmentByTag("android:switcher:" + getViewPager().getId() + ":" + fpa.getItemId(position));
  5. }

__________________
 let live
- 27.08.2014 / 13:35
Naik
  Пользователь

Naik 
Сейчас: Offline
aNNiMON, это что? :gg: Или имеется ввиду, что фрагмент можно получить так findFragmentByTag("android:switcher:" + myViewPager.getId() + ":" + myAdapter.getItemId(position)); ? Тогда это только подтверждает, что адаптер сам все делает, и автор этого кода подглядел где-то в исходниках как устанавливаются теги по умолчанию, только где гарантия, что везде одинаково?

Вот такой адаптер
Открыть спойлер


Изменено Naik (27.08 / 13:47) (всего 6 раз)
- 27.08.2014 / 14:25
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Цитата Naik:
только где гарантия, что везде одинаково?
%android-sdk%\extras\android\support\v4\src\java\android\support\v4\app\FragmentPagerAdapter.java
  1. private static String makeFragmentName(int viewId, long id) {
  2.     return "android:switcher:" + viewId + ":" + id;
  3. }
:gg:
__________________
 let live

Изменено aNNiMON (27.08 / 14:26) (всего 1 раз)
- 27.08.2014 / 19:17
andreyKorotayev
  Пользователь

andreyKorotayev 
Сейчас: Offline
Народ возникла проблема , создал для программы файл менеджер, на кастомном adapter 'e, все работает, листаю каталог 2-3 раза и потом ListView начинает не реально тормозить? Почему? :-(

Изменено andreyKorotayev (27.08 / 19:17) (всего 1 раз)
- 27.08.2014 / 19:38
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
andreyKorotayev, скорее всего ресурсы не освобождаешь - утечка памяти в проге.
Покажи код адаптера. На pastebin.com или gist.github.com закинь.
__________________
 let live

Изменено aNNiMON (27.08 / 19:39) (всего 1 раз)
- 27.08.2014 / 19:39
Naik
  Пользователь

Naik 
Сейчас: Offline
andreyKorotayev, метод getView должен быть примерно таким
  1. public View getView(int position, View view, ViewGroup viewGroup) {
  2.         ViewHolder holder;
  3.         if (view == null) {
  4.             view = li.inflate(R.layout.list_row, null);
  5.             holder = new ViewHolder();
  6.             holder.imageView = (ImageView) view.findViewById(R.id.list_image);
  7.             holder.header = (TextView) view.findViewById(R.id.list_header);
  8.             holder.subheader = (TextView) view.findViewById(R.id.list_subheader);
  9.             view.setTag(holder);
  10.         } else {
  11.             holder = (ViewHolder) view.getTag();
  12.         }
  13.         Item item = list.get(position);
  14.  
  15.  
  16.         holder.imageView.setImageResource(item.getImageId());
  17.         holder.header.setText(item.getHeader());
  18.         holder.subheader.setText(item.getSubheader());
  19.         return view;
  20.     }
  21.  
  22.     private static class ViewHolder {
  23.         ImageView imageView;
  24.         TextView header, subheader;
  25.     }

- 27.08.2014 / 19:40
andreyKorotayev
  Пользователь

andreyKorotayev 
Сейчас: Offline
А сюда можно?он 1 кб весит
- 27.08.2014 / 19:42
Naik
  Пользователь

Naik 
Сейчас: Offline
andreyKorotayev, под спойлер давай

Или файлом

Изменено aNNiMON (27.08 / 19:46) (всего 1 раз)
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)