2012-04-01 2 views
0

У меня есть HorzontalScrollView с LinearLayout внутри. Во время выполнения Runtime я могу добавить LinearLayouts в LinearLayout.Android HorizontalScrolling laggy

Теперь у меня есть проблема с тем, что Scrollview только немного прокручивается и не сглаживается одним пальцем!

У кого-нибудь есть решение этой проблемы?

ответ

1

HorizontalScrollView не использует адаптер, который управляет памятью списка, поэтому он не может обрабатывать списки тяжелых (изображений, пользовательских представлений и т. Д.).

Вы можете использовать этот Horizontal ListView http://www.dev-smart.com/archives/34, но убедитесь, что вы не пишете метод щелчка элемента списка внутри getView, он заставит список прокручиваться медленно. Помимо этого, это отличный ресурс для плавного просмотра горизонтальных списков.

Вы также можете исследовать Android вид пейджера, который также поддерживается на более низких версиях Android с использованием пакета обеспечения совместимости: http://developer.android.com/sdk/compatibility-library.html

Edit - что-то вроде этого в адаптер, который раздувает XML вы хотите (LinearLayout) и затем заполняет каждое представление соответствующими данными.

@Override 
      public View getView(final int position, View convertView, ViewGroup parent) { 

       if (convertView == null) { 
        convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.chat_friends_list_item, null); 
       } 

       ImageView status = (ImageView)convertView.findViewById(R.id.status); 
       ImageView image = (ImageView)convertView.findViewById(R.id.image); 
       ImageView imageBorder = (ImageView)convertView.findViewById(R.id.image_border); 
       TextView title = (TextView)convertView.findViewById(R.id.title); 
} 
+0

Знаете ли вы, как я могу выполнить это, если ни один элемент не находится внутри списка, в список будет добавлен другой элемент linearlayout со всей шириной? –

+0

@ matchi1992 в getview адаптера listview, заполните элемент XML линейного макета. См. Обновленный ответ. –

0

Проблема была в моем родительском потоке, потому что она украла событие салфетки! HorizontalListView слишком глючит для меня! (Проблемы с атрибутами размера)

Однако, спасибо за ваш ответ! ;)