首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将BaseAdapter设置为RecyclerView?

如何将BaseAdapter设置为RecyclerView?
EN

Stack Overflow用户
提问于 2018-06-04 18:22:13
回答 4查看 5.2K关注 0票数 1

每当我需要实现自定义的ListViewGridView时。我总是使用这样一个BaseAdapter类:

代码语言:javascript
复制
public class CustomFlowerGridViewAdapter extends BaseAdapter {

private HashMap<String, String> mFlowerFeed = new HashMap<>();

private Context mContext;
static LayoutInflater mFlowerInflater = null;

CustomFlowerGridViewAdapter(Context context, ArrayList<HashMap<String, String>> data) {

    super();
    this.mContext = context;
    MainActivity.flowerArrayFeedList = data;
    mFlowerInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

}

@Override
public int getCount() {
    return MainActivity.flowerArrayFeedList.size();
}

@Override
public Object getItem(int i) {
    return MainActivity.flowerArrayFeedList.size();
}

@Override
public long getItemId(int i) {
    return i;
}

@Override
public View getView(int i, View view, ViewGroup viewGroup) {

    final ViewHolder holder;

    if(view == null){

        view = mFlowerInflater.inflate(R.layout.flower_grid_row, viewGroup, false);

        holder = new ViewHolder();

        holder.name = (TextView) view.findViewById(R.id.mainGridName);

        view.setTag(holder);
        mFlowerFeed = MainActivity.flowerArrayFeedList.get(i);
        mFlowerImage = MainActivity.flowerArrayImageList.get(i);

    }
    else{
        holder = (ViewHolder) view.getTag();
        mFlowerFeed = MainActivity.flowerArrayFeedList.get(i);
        mFlowerImage = MainActivity.flowerArrayImageList.get(i);

    }

    holder.name.setText(mFlowerFeed.get("name"));

    return view;
}

private class ViewHolder {

    TextView name

 }
}

但是,现在我正在尝试实现一个Horizontal ListView。在做了一些研究之后,我发现实现水平ListView的“正确”方法是使用RecyclerView。这就是我的MainActivity

代码语言:javascript
复制
CustomFlowerGridViewAdapter customFlowerGridViewAdapter = new CustomFlowerGridViewAdapter(MainActivity.this, flowerArrayFeedList);
    flowersGrid.setAdapter(customFlowerGridViewAdapter);

问题是当我尝试设置适配器时。

如何将BaseAdapter设置为RecyclerView?

EN

Stack Overflow用户

发布于 2018-06-04 19:03:13

我找到了一个很简单的解决方案。不需要处理RecyclerViews

旋转布局包装

然后,在包装器内,指定角度为90。

代码语言:javascript
复制
com.github.rongi.rotate_layout.layout.RotateLayout
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/mainFlowersGridL"
            android:layout_below="@+id/mainFlowersHeading"
            android:layout_width="match_parent"
            android:layout_height="170dp"
            app:angle="90"> <!-- Specify rotate angle here -->

            <GridView
                android:id="@+id/mainFlowersGrid"
                android:layout_below="@+id/mainFlowersHeading"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </GridView>
        </com.github.rongi.rotate_layout.layout.RotateLayout>

然后,在自定义元素xml文件中。将布局指定为-90。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50686600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档