我正在寻找任何帮助我使用适配器制作FlowLayout的库,比如GridView,但我想在流程中安排元素!你怎么想,最好的方法是什么(FreeFlow)? 我用适配器创建了一个StickyListHeadersListView:
@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 :(得分: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);
将显示如下结果: -
答案 1 :(得分: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)