Articles of android recyclerview

以编程方式设置app:layout_behavior

我有一个带有recyclerview的协调器布局,我想以编程方式添加。 它以编程方式添加的原因是因为不同的片段会使协调器布局膨胀,可能会使用不同types的recyclerviews。 通常对于recyclerview,为了设置此行为,我会将其添加到xml中: app:layout_behavior=”@string/appbar_scrolling_view_behavior” 这很好。 但是,当我以编程方式创建recyclerviews然后将它们添加到framelayout时,我完全不知道如何添加此行为:

如何控制recyclerView.smoothScrollToPosition(位置)的滚动速度

我有一个回收者视图…我想要一个平滑的向下滚动然后以编程方式滚动到它以向用户显示其中的完整内容….并且我能够通过以下方式执行此操作 final int height=recyclerView.getChildAt(0).getHeight(); recyclerView.smoothScrollToPosition(height); recyclerView.postDelayed(new Runnable() { public void run() { recyclerView.smoothScrollToPosition(0); } },200); 但我想要的是……减慢滚动速度,使整个内容清晰可见。所以,有人可以帮助我find它。 Thxs …

如何在Google plus / Google报亭上滚动回收视图?

当项目第一次出现时以及用户滚动时,如何为RecyclerView设置animation,就像它对google plus应用程序或google新闻台应用程序的工作方式一样。 另外我在某处读到当用户滚动时RecyclerView不直接支持animation; 如果这是真的,我们还有什么方法可以做到吗?

如何布置嵌套的RecyclerViews,同时保持高性能?

我正在尝试实现类似于Google Play音乐的“立即收听”布局。 我在网上find的每个例子都是一个简单的RecyclerView 。 我想要实现更复杂的事情。 就像是 整个布局(减去工具栏)可以是一个RecyclerView ,还包含两个RecyclerViews吗? 就像是 最终,我想要实现的是如下所示的布局,并保持高效。 //vertical //vertical //horizontal //horizontal

从RecyclerView中删除所有项目

我试图在我的onRestart方法中删除我的RecyclerView中的所有元素,因此项目不会被加载两次: @Override protected void onRestart() { super.onRestart(); //first clear the recycler view so items are not populated twice for(int i=0; i<recyclerAdapter.getSize(); i++) { recyclerAdapter.delete(i); } //then reload the data PostCall doPostCall = new PostCall(); //my AsyncTask… doPostCall.execute(); } 但由于某种原因,我在adapter创建的delete方法无法正常运行: 在RecyclerAdapter.java中: public void delete(int position){ myList.remove(position); notifyItemRemoved(position); } public int getSize(){ return myList.size(); } 我认为列表中的其他项目都会被删除而不是整个列表。 使用listview它很容易,我简单地称为adapter.clear() […]

在Recyclerview中嵌入广告

我正在尝试将我的应用程序从listview升级到recyclerview。 当我使用listview时,我使用本教程在listview中嵌入了广告。 我无法在recyclerview中添加它。 有关如何在Recyclerview中完成此操作的任何观点? 目前在我的listview中,加载广告的代码如下: if ((position % k) == 0) { if (convertView instanceof AdView) { return convertView; } else { // Create a new AdView AdView adView = new AdView(activity, AdSize.BANNER, ADMOB_ID); float density = activity.getResources().getDisplayMetrics().density; int height = Math.round(AdSize.BANNER.getHeight() * density); AbsListView.LayoutParams params = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, height); adView.setLayoutParams(params); adView.loadAd(new AdRequest()); return […]

RecyclerView适配器notifyDataSetChanged停止花哨的animation

我正在构建一个基于RecyclerView的组件,允许用户通过拖放重新排序项目。 一旦我在DragListener端,我需要它在适配器中的位置,以便执行正确的移动,但我只能访问视图。 所以这是我在适配器视图绑定中所做的事情: @Override public void onBindViewHolder(ViewHolder viewHolder, int position) { Track track = mArray.get(position); viewHolder.itemView.setTag(R.string.TAG_ITEM_POSITION, position); } 你觉得这样对吗? 因为如果我移动这样的项目: public void move(int from, int to){ Track track = mArray.remove(from); mArray.add(to, track); notifyItemMoved(from, to); } 然后位置标记不再正确,如果我notifyDataSetChanged(),我失去了花哨的animation。 有什么建议吗?

RecyclerView无法按预期滚动

我有一个项目,我使用水平回收视图,我想要一个元素居中。 我的实现有效,但不是在每种情况下都在这里检查这个GIF: 你可能会注意到,如果我从左边来,它会正确滚动。 如果我来自右边它会过度压缩,我不知道如何停止或如何解决这个问题。 我在这里将代码条带化为此示例: public class DemoActivity extends ActionBarActivity implements View.OnClickListener { private static final int JUMP_TO_LEFT = MyAdapter.NON_VISIBLE_ITEMS + MyAdapter.VISIBLE_ITEMS – 1; private static final int JUMP_TO_RIGHT = MyAdapter.NON_VISIBLE_ITEMS; private LinearLayoutManager mLayoutManager; private RecyclerView mRecycler; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_demo); findViewById(android.R.id.button1).setOnClickListener(this); mRecycler = (RecyclerView)findViewById(R.id.recycler); MyAdapter mAdapter = new MyAdapter(); mLayoutManager […]

扩充类RecyclerView时出错

所以我的代码只使用RecyclerView创建了一个CardView列表。 运行我的代码后,我一直收到一个奇怪的错误,声称我的xml中有错误。 经过修补一段时间后,我发现在我的布局文件中如果我将更改为一切都会正常工作。 为什么会这样? 我的活动。 import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.Menu; import android.view.MenuItem; import java.util.ArrayList; public class CardListActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_card_list); RecyclerView recyclerView = (RecyclerView)findViewById(R.id.cardList); recyclerView.setHasFixedSize(true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); recyclerView.setLayoutManager(linearLayoutManager); ArrayList list = new ArrayList(); for(int i = 0; i […]

RecyclerView中图像的奇怪行为

我使用android.support.v7.widget.RecyclerView来显示包含文本的简单项目,在某些情况下还显示图像。 基本上我从这里按照教程https://developer.android.com/training/material/lists-cards.html ,只是将mDataset的types从String []更改为JSONArray和ViewHolder的xml。 我的RecyclerView位于一个简单的片段中: 在这个片段中,我将从Web服务器加载所有信息。 收到信息后,我初始化RecyclerView中的项目。 我使用了一个在我的片段的onCreate方法中设置的LinearLayoutManager。 添加适配器后,我在RecyclerView上调用setHasFixedSize(true)方法。 我的Adapter类看起来像这样: import android.graphics.BitmapFactory; import android.support.v7.widget.RecyclerView; import android.util.Base64; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import org.apache.commons.lang3.StringEscapeUtils; import org.json.JSONArray; import org.json.JSONObject; import saruul.julian.MyFragment; import saruul.julian.R; public class MyAdapter extends RecyclerView.Adapter { /** * Fragment holding the RecyclerView. */ […]