2013-04-25 3 views
0

Мне нужно создать вид горизонтального списка, который показывает, что количество просмотров - это просто изображение и небольшой фрагмент текста. Список должен быть легкомысленным с инерциальной прокруткой, иметь возможность повторного использования представлений и иметь возможность лениво загружать представления, когда они доступны для просмотра или только вне диапазона того, что отображается .Лучший способ реализовать горизонтальный вид списка прокрутки в Android

Вот что я рассмотрел и почему они не кажутся подходящими.

Галерея - Устаревшие, поэтому использовать нельзя.

ViewPager - Не позволяет вам пролистывать страницы, щелчок просто перемещается на следующую страницу.

HorizontalScrollView - нужно добавить к нему представление вручную, а не использовать адаптер для обеспечения требуемого вида, чтобы представления не перерабатывались или не загружались.

Я также не могу использовать любые библиотеки или представления, созданные другими, для достижения этого, независимо от того, говорят ли они, что они могут использовать их бесплатно или нет.

Для достижения этой цели предлагаются два варианта. Во-первых, используйте HorizontalScrollView и создавайте и добавляйте все дочерние представления при настройке, но без их изображений, а затем обнаруживайте, когда виды почти видимы и загружают их изображения. Я все еще мог создавать несколько сотен представлений и добавлять их сюда за один раз, но по крайней мере я бы не загружал все изображения в память. Второй вариант - написать собственный AdapterView, чтобы сделать именно то, что я хочу, что кажется самым гибким, но также и самым трудоемким.

Любые мнения о наилучшем способе достижения этого будут оценены по достоинству.

Благодаря

ответ

0

С HorizontalScrollView вам нужно вручную добавить макет. С моим анализом ViewPager - лучший контроллер. Вы можете легко управлять позициями в viewpager из своего адаптера. Вы можете установить несколько страниц viewpager в одном экране, переопределив метод getPageWidth (int position) класса адаптера. Также вы можете использовать метод onCreateView класса фрагмента для повторного использования представления.

@Override 
    public float getPageWidth(int position) { 
     // TODO Auto-generated method stub 

      return 0.5f; 
    } 

Это будет иметь 2 страниц одновременно на одном экране

Смежные вопросы