相关疑难解决方法(0)

如何使用多种视图类型创建RecyclerView?

来自https://developer.android.com/preview/material/ui-widgets.html

当我们创建时,RecyclerView.Adapter我们必须指定ViewHolder将与适配器绑定.

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {

    private String[] mDataset;

    public MyAdapter(String[] myDataset) {
        mDataset = myDataset;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mTextView;
        public ViewHolder(TextView v) {
            super(v);
            mTextView = v;
        }
    }

    @Override
    public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.some_layout, parent, false);

        //findViewById...

        ViewHolder vh = new ViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        holder.mTextView.setText(mDataset[position]);
    }

    @Override
    public int …
Run Code Online (Sandbox Code Playgroud)

user-interface android android-recyclerview

795
推荐指数
13
解决办法
39万
查看次数

使用SpanSizeLookup为GridLayoutManager中的项设置范围

我想用节标题实现类似网格的布局.想想https://github.com/TonicArtos/StickyGridHeaders

我现在应该做什么:

mRecyclerView = (RecyclerView) view.findViewById(R.id.grid);
mLayoutManager = new GridLayoutManager(getActivity(), 2);
mLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                switch(mAdapter.getItemViewType(position)){
                    case MyAdapter.TYPE_HEADER:
                        return 1;
                    case MyAdapter.TYPE_ITEM:
                        return 2;
                    default:
                        return -1;
                }
            }
        });

mRecyclerView.setLayoutManager(mLayoutManager);
Run Code Online (Sandbox Code Playgroud)

现在常规项和标题的跨度大小为1.我该如何解决这个问题?

android android-support-library gridlayoutmanager android-recyclerview

84
推荐指数
2
解决办法
4万
查看次数

如何在recyclerview中实现粘性页脚

我有RecyclerView,我需要下一个行为:

  • 如果有很多项目(更多适合屏幕) - 页脚是最后一项
  • 如果项目/没有项目 - 页脚位于屏幕底部

请告知我该如何实现此行为.

android footer android-recyclerview

19
推荐指数
2
解决办法
6019
查看次数

RecyclerView与不同的Cardlayouts

我想做什么


此刻,我正在RecyclerView和我一起玩CardView.现在我写了一个RecyclerView.Adapter,我可以用不同的内容多次显示相同的CardView - 类似于ListViewa BaseAdapter.

现在我想写一个RecyclerView不同CardView-Layout的(以Google Now的风格).我已经搜索了教程,但没有发现有关该主题的任何有用信息.有人知道,这需要如何实施?要意识到这一点需要做些什么?

android android-cardview recycler-adapter android-recyclerview

13
推荐指数
1
解决办法
9018
查看次数

RecyclerView适配器类中的多个布局视图

这是我取得的成就?3个不同的部分,每个部分有10个不同的项目.

这是我正在关注的教程 链接,下面是截图:

在此输入图像描述

试图显示different Views每个部分.喜欢:

对于第1节(layout_1.xml)

对于第2节(layout_2.xml)

对于第3节(layout_3.xml)

示出了布局视图layout_1.xml在每 ...(第1,2,3)

我可以知道我的代码在哪里犯了错误,我错过了什么?

public class SectionListDataAdapter extends RecyclerView.Adapter<SectionListDataAdapter.SingleItemRowHolder> {

    private ArrayList<SingleItemModel> itemsList;
    private Context mContext;

    public SectionListDataAdapter(Context context, ArrayList<SingleItemModel> itemsList) {
        this.itemsList = itemsList;
        this.mContext = context;
    }

    @Override
    public SingleItemRowHolder onCreateViewHolder(ViewGroup viewGroup, int i) {

        switch (i) {

            case 0:
                View …
Run Code Online (Sandbox Code Playgroud)

xml layout android adapter android-recyclerview

8
推荐指数
1
解决办法
3109
查看次数

处理RecyclerView,NestedScrollView和CardView

我将在我的应用程序中实现此UI: UI

好吧,我之前尝试过的一些方法:

1.使用CollapsingToolbarLayout 我把我CardView的insid CollapsingToolbarLayout并把他们都在AppBarLAyout.

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

        <android.support.design.widget.CollapsingToolbarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|exitUntilCollapsed" >

            <CardView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                />
                  <!-- My Views Goes there -->
            </CardView

            <android.support.v7.widget.Toolbar
                android:id="@+id/flexible.example.toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="@null"
                app:layout_collapseMode="pin"
                style="@style/ToolBarWithNavigationBack"
                />
        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <RecyclerView
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
    ></RecyclerView>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

PS:我删除了不相关的代码,不提我

这种方式正常但是!!! 当CardView高度高于屏幕高度时,它的内容由AppBarLayout用户显示并且不向用户显示

2.使用NestedScrollView 我放入CardViewRecyclerView内部NestedScrollView.但问题是当用户到达时回收到RecyclerView,然后滚动回到顶部,fling会变得迟钝和错误并停止一些用户必须滚动越来越多的地方!

<android.support.v4.widget.NestedScrollView
    android:id="@+id/nested_scrollbar"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="fill_vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:scrollbars="none" >
        <LinearLayout
            android:id="@+id/nested_scrollbar_linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

                <android.support.v7.widget.CardView
                    android:id="@+id/flexible.example.cardview"
                    android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview android-collapsingtoolbarlayout android-appbarlayout nestedscrollview

6
推荐指数
1
解决办法
6586
查看次数

Recyclerview:如何将一些帖子与图像混合而没有图像?

我想在同一个回收视图中显示,有些帖子有图片,有些帖子没有图片。

我可以检索所有带有图像和非图像的帖子,但是当用户仅发布文本(无图像)时,我想更改帖子的大小。

我希望像 twitter feed 这样的输出......一些带有图像和没有图像的帖子有自己的大小。

java android android-recyclerview

6
推荐指数
1
解决办法
795
查看次数

不兼容的类型:无法将 viewholder 转换为 imageviewholder

我正在关注 RecyclerView 示例,但出现此错误

incompatible types: cannot cast viewholder to imageviewholder
Run Code Online (Sandbox Code Playgroud)

在这个代码上

case TYPE_IMAGE:
            ImageViewHolder imageViewHolder = (ImageViewHolder) holder;
Run Code Online (Sandbox Code Playgroud)

这是我的完整代码(已编辑)

public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private ArrayList<String> mDataset;

    public class ImageViewHolder extends RecyclerView.ViewHolder {
        //ImageView mImage;
        public TextView txtHeader;
        public TextView txtFooter;
        public ImageViewHolder(View itemView) {
            super (itemView);
            txtHeader = (TextView) itemView.findViewById(R.id.firstLine1);
            txtFooter = (TextView) itemView.findViewById(R.id.secondLine1);
        }
    }

    // Provide a reference to the views for each data item
    // Complex data items may need more than one view per …
Run Code Online (Sandbox Code Playgroud)

android incompatibletypeerror android-recyclerview

5
推荐指数
1
解决办法
7861
查看次数

RecyclerView未在NestedScrollView中显示

我在StackOverflow上看了几个类似的事件.但似乎没有一个适用于我的情况.我遇到的问题是我的RecyclerView正在运行,但没有显示任何内容.我已经运行了多个测试来试图弄清楚它为什么不起作用,但所有人都支持它正常工作的事实.

登录getItemCount返回3,这是正确的数字.我只是不明白为什么它没有显示.我回顾了我在之前的活动中所做的回收站视图,它们都匹配到一定程度(其他回收商有更多信息可以设置).

感谢您提供任何帮助.

编辑:我发现了这个问题,但仍然需要帮助.正是崩溃的工具栏导致了它.如果我在NestedScrollView外移动RecyclerView,我可以看到这些项目.但是,内容不能像activity_project_detail.xml中注释掉的TextView那样正确移动.我想我的新问题是如何在NestedScrollView中使用RecyclerView.谢谢!

ProjectDetailsActivity.java

package com.austinerck.projectpanda.activity;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

import com.austinerck.projectpanda.R;
import com.austinerck.projectpanda.adapter.TaskAdapter;
import com.austinerck.projectpanda.data.LocalDatabase;
import com.austinerck.projectpanda.data.Project;
import com.austinerck.projectpanda.data.Task;

import java.util.ArrayList;

public class ProjectDetailsActivity extends AppCompatActivity {

    private boolean connectionState;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_project_details);

        //Sets toolbar and up navigation
        setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        //Gets the connection state from the intent
        connectionState = getIntent().getExtras().getBoolean(LocalDatabase.CONNECTION_STATE);

        //Gets the projects from the intent
        Project project = getIntent().getExtras().getParcelable(LocalDatabase.PROJECT_DETAILS); …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview nestedscrollview

4
推荐指数
2
解决办法
4562
查看次数

循环视图膨胀不同的行: - 在绑定数据时获取异常


我正在研究Recyceview不同项目的通货膨胀.当我没有绑定onBindViewHolder方法上的数据RecycleView比它不崩溃..
但当我绑定数据内部onBindViewHolder比我得到的Exception,请检查我的代码,让我知道我在哪里做错了.

package com.tv.practise.adapter;

  /**
    Created by Ravindra Kushwaha on 10/10/16.
   */

public class RecycleDataAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {

private Context mContext;
private ArrayList<RecycleBen> data;

public static class SimpleText extends RecyclerView.ViewHolder {
    TextView first_data_tv;

    public SimpleText(View v) {
        super(v);
        this.first_data_tv = (TextView) v.findViewById(R.id.first_data_tv);
    }
}

public   class SimpleImage extends  RecyclerView.ViewHolder {
    ImageView second_data_iv;

    public SimpleImage(View v) {
        super(v);
        this.second_data_iv = (ImageView) v.findViewById(R.id.second_data_iv);
    }
}

public  class SimpleImageWithText extends  RecyclerView.ViewHolder …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter android-recyclerview

1
推荐指数
1
解决办法
4660
查看次数