Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中带适配器的FlowLayout_Android_Flowlayout - Fatal编程技术网

android中带适配器的FlowLayout

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

我正在寻找任何可以帮助我使用适配器制作FlowLayout的库,比如GridView,但我想在flow中排列元素!你认为什么是最好的方法(自由流)? 我已使用适配器创建了StickyListHeaderListView:

   @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中排列元素!例如: