2014-12-17 3 views
3

Я ищу любую библиотеку, которая поможет мне создать FlowLayout с адаптером, например GridView, но я хочу упорядочить элементы в потоке! Как вы думаете, что это лучший способ сделать это (FreeFlow)? Я создал StickyListHeadersListView с адаптером:FlowLayout с адаптером в android

@Override 
public View getView(int position, View convertView, final ViewGroup parent) { 
    FiltersChildViewHolder holder; 
    if (convertView == null) { 
     final View[] temp = new View[1]; 
     mActivity.runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
      temp[0] = mInflater.inflate(R.layout.item_filters_layout, parent, false); 
      } 
     }); 
     convertView = temp[0]; 

     holder = new FiltersChildViewHolder(); 
     holder.flFilters_IFL = (FlowLayout) convertView.findViewById(R.id.flFilters_IFL); 

     convertView.setTag(holder); 
    } else { 
     holder = (FiltersChildViewHolder) convertView.getTag(); 
    } 


    ArrayList<FilterModel> filterModels = getFiltersForCategory(position); 

    FilterLayoutAdapter adapter = new FilterLayoutAdapter(mActivity, filterModels); 
    adapter.setOnFiltersChangedListener(mFiltersChangedListener); 
    adapter.setIsDefault(isDefault); 
    holder.flFilters_IFL.setAdapter(adapter); 

    return convertView; 
} 

Это метод GetView() в моем адаптере! Каждый элемент списка является FlowLayout, а FilterLayoutAdapter добавляет представления к этому FlowLayout, это работает для меня, таким образом элементы упорядочиваются в потоке, но ListView очень свободен, когда я просматриваю следующий элемент списка, потому что все childView сразу же накачиваются в FlowLayout, а thera - 100 childView!

ответ

0

Используйте этот код раздела в конце метода getView до return view; линия.

Animation animationY = new TranslateAnimation(0, 0, 
         parent.getHeight()/4, 0); 
       animationY.setDuration(1000); 
       view.startAnimation(animationY); 

где родитель будет

public View getView(final int position, View convertView, 
       ViewGroup parent) 
+0

Я не понимаю , как это решит мою проблему! Моя проблема заключается в том, что каждый элемент списка является FlowLayout, каждый FlowLayout будет иметь min 30 childs, и когда я раздуваю их, они накапливаются сразу, и это блокирует основной поток, потому что я использовал ListView.I думаю, что это будет работать с GridView, но GridView не упорядочивает элементы в потоке! – rMozes

+0

Что такое flowlayout? –

+0

FlowLayout - это настраиваемая группа ViewGroup, она упорядочивает элементы в потоке, такие как FlowLayout в Java! Например: https://github.com/blazsolar/FlowLayout – rMozes

1

Здравствуйте здесь пример использования пользовательские библиотеки, которая действует как список GitHubLibrary TagLayout

  • Пример кода: -

mFlowLayout.setAdapter(new TagAdapter<String>(mVals) { @Override public View getView(FlowLayout parent, int position, String s) { TextView tv = (TextView) mInflater.inflate(R.layout.tv, mFlowLayout, false); tv.setText(s); return tv; } });

Использование ниже кода вы можете предварительно набор выбор вы хотите: -

mAdapter.setSelectedList(1,3,5,7,8,9); 

Покажет результат, как показано ниже: -

enter image description here

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