android中带适配器的FlowLayout
我正在寻找任何可以帮助我使用适配器制作FlowLayout的库,比如GridView,但我想在flow中排列元素!你认为什么是最好的方法(自由流)? 我已使用适配器创建了StickyListHeaderListView:android中带适配器的FlowLayout,android,flowlayout,Android,Flowlayout,我正在寻找任何可以帮助我使用适配器制作FlowLayout的库,比如GridView,但我想在flow中排列元素!你认为什么是最好的方法(自由流)? 我已使用适配器创建了StickyListHeaderListView: @Override public View getView(int position, View convertView, final ViewGroup parent) { FiltersChildViewHolder holder; if (conv
@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(int位置、视图转换视图、最终视图组父视图){
FiltersChildViewHolder;
if(convertView==null){
最终视图[]临时=新视图[1];
mActivity.runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
温度[0]=最小充气量(R.layout.item\u filters\u layout,parent,false);
}
});
convertView=temp[0];
holder=新过滤器ChildViewHolder();
holder.flFilters\u IFL=(FlowLayout)convertView.findViewById(R.id.flFilters\u IFL);
convertView.setTag(支架);
}否则{
holder=(FiltersChildViewHolder)convertView.getTag();
}
ArrayList filterModels=getFiltersForCategory(位置);
FilterLayoutAdapter=新的FilterLayoutAdapter(MacActivity,filterModels);
adapter.setOnFiltersChangedListener(mFiltersChangedListener);
适配器.setIsDefault(isDefault);
支架FL过滤器IFL设置适配器(适配器);
返回视图;
}
这是我的适配器中的getView()方法!每个列表项都是一个FlowLayout,FilterLayoutAdapter将向这个FlowLayout添加视图,这对我来说很有效,通过这种方式元素在flow中排列,但是当我滚动到下一个列表项时,ListView非常自由,因为所有的子视图都在FlowLayout中立即膨胀,thera是100个子视图 使用getView方法结尾部分的此代码
返回视图代码>行
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)
Hello这里是一个使用自定义库的示例,它的行为类似于列表
- 示例代码:-
mFlowLayout.setAdapter(新标记适配器(mVals)
{
@凌驾
公共视图getView(FlowLayout父级、int位置、字符串s)
{
TextView tv=(TextView)mInflater.充气(R.layout.tv、,
mFlowLayout,false);
tv.setText(s);
返回电视;
}
});代码>
使用以下代码,您可以预先设置所需的选择:-
mAdapter.setSelectedList(1,3,5,7,8,9);
将显示如下结果:-
我不明白,它将如何解决我的问题!我的问题是,每个列表项都是一个FlowLayout,每个FlowLayout至少有30个子元素,当我对它们进行膨胀时,它们会立即膨胀,这会阻塞主线程,因为我使用了ListView。我认为这可以在GridView中使用,但GridView不会在flow中排列元素!FlowLayout是一个自定义视图组,它像Java中的FlowLayout一样在flow中排列元素!例如: