Questions tagged «android-recyclerview»

RecyclerView小部件是ListView和GridView的更高级,更灵活的版本。

8
RecyclerView中最后一个孩子的边距/填充
我正在尝试在最后一行添加填充/边距底部,在第一行添加填充/边距顶部。我无法在xml项目中执行此操作,因为它会影响我所有的孩子。 我的RecyclerView适配器中有标题和子元素,因此我不能使用 android:padding="4dp" android:clipToPadding="false" 我需要在每个标题的最后第一行中单独使用它

11
RecyclerView-如何在特定位置上平滑滚动到项目顶部?
在RecyclerView上,我可以使用以下方法突然滚动到所选项目的顶部: ((LinearLayoutManager) recyclerView.getLayoutManager()).scrollToPositionWithOffset(position, 0); 但是,这突然将项目移动到顶部位置。我想顺利地移到项目的顶部。 我也尝试过: recyclerView.smoothScrollToPosition(position); 但是它不能很好地工作,因为它不能将项目移动到所选的顶部位置。它仅滚动列表,直到该位置上的项目可见为止。

10
Recyclerview和处理不同类型的行充气
我正在尝试使用new RecyclerView,但是找不到RecyclerView带有不同类型的行/ cardview膨胀的示例。 使用ListViewI可以覆盖getViewTypeCount和getItemViewType,用于处理不同类型的行。 我是否应该像“旧”方式那样做LayoutManager?还是应该做些什么?我想知道是否有人可以指出我正确的方向。因为我只能找到一种类型的示例。 我想列出一张略有不同的卡片。还是我应该在其中使用scrollViewwith cardViews...使其不带有适配器和recyclerView?

6
回收站视图显示单个项目
我遇到一个奇怪的错误,其中recyclerview仅显示一个项目。以下是我的recyclerview适配器的代码: public class ChatAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { List<chat> chats; String username; final int My=0,Their=1; public ChatAdapter(List<chat> chats) { this.chats = chats; this.username = PushApp.getApp().getSPF().getStringData(Constants.ANAME); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { RecyclerView.ViewHolder viewHolder; LayoutInflater inflater = LayoutInflater.from(parent.getContext()); switch (viewType) { case My: View v1 = inflater.inflate(R.layout.my_chat_child, parent, false); …

2
删除RecyclerView滚动效果
我的RecyclerView里面有两个NavigationDrawer。两者都具有蓝色滚动效果。 如何在两者中都消除这种影响RecyclerViews? 我尝试将更mRecyclerView.setHasFixedSize(true);改为false,但删除了滚动效果。(此方法的作用是什么?)

10
CardView layout_width =“ match_parent”与父RecyclerView宽度不匹配
我有一个片段,其中包含一个带有layout_width =“ match_parent”的RecyclerView: <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity$PlaceholderFragment" /> RecyclerView中的项目也是CardView,它也具有layout_width =“ match_parent”: <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="20dp" card_view:cardCornerRadius="4dp"> <TextView android:layout_gravity="center" android:id="@+id/info_text" android:layout_width="match_parent" android:gravity="center" android:layout_height="match_parent" android:textAppearance="?android:textAppearanceLarge"/> </android.support.v7.widget.CardView> 我将项目视图充气如下: public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { CardView v = (CardView) LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_listitem, null, …

12
Android 5.0-将页眉/页脚添加到RecyclerView
我花了一点时间试图找出一种将标头添加到的方法RecyclerView,但未成功。 这是我到目前为止所得到的: @Override protected void onCreate(Bundle savedInstanceState) { ... layouManager = new LinearLayoutManager(getActivity()); recyclerView.setLayoutManager(layouManager); LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); headerPlaceHolder = inflater.inflate(R.layout.view_header_holder_medium, null, false); layouManager.addView(headerPlaceHolder, 0); ... } 在LayoutManager似乎是处理的配置对象RecyclerView的项目。由于找不到任何addHeaderView(View view)方法,因此决定使用LayoutManager的addView(View view, int position)方法,并将标头视图添加到第一个位置以用作标头。 Aaand这就是事情变得更糟的地方: java.lang.NullPointerException: Attempt to read from field 'android.support.v7.widget.RecyclerView$ViewHolder android.support.v7.widget.RecyclerView$LayoutParams.mViewHolder' on a null object reference at android.support.v7.widget.RecyclerView.getChildViewHolderInt(RecyclerView.java:2497) at …


5
滑动以关闭RecyclerView [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 我曾经使用过SwipeToDismiss库,但现在我正尝试迁移到RecyclerView,事情并不是那么明显,您知道此lib有任何替换吗?有什么想法如何从头开始实施它吗?

27
当“废弃或附加的视图可能无法回收”时,RecyclerView崩溃
我使用的RecyclerView是从Android网站获取的简单实现,使用,StaggeredGridLayoutManager并且不断收到此错误,使我的应用崩溃: java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:true at android.support.v7.widget.RecyclerView$Recycler.recycleViewHolderInternal(RecyclerView.java:3501) at android.support.v7.widget.RecyclerView$LayoutManager.scrapOrRecycleView(RecyclerView.java:5355) at android.support.v7.widget.RecyclerView$LayoutManager.detachAndScrapAttachedViews(RecyclerView.java:5340) at android.support.v7.widget.StaggeredGridLayoutManager.onLayoutChildren(StaggeredGridLayoutManager.java:572) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:1918) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:2155) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.widget.FrameLayout.onLayout(FrameLayout.java:448) at android.view.View.layout(View.java:14008) at android.view.ViewGroup.layout(ViewGroup.java:4373) at android.support.v7.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:502) at android.view.View.layout(View.java:14008) …

3
以编程方式将新项目添加到recyclerview吗?
我仍在努力让自己了解recyclerview。我有一个arraylist,可用于初始化回收站视图。 如何设置适配器和layoutmanager的新项目添加到回收视图中? private void initData() { mItems = new ArrayList<String>(); for (int i = 0; i < ITEMS_COUNT; i++) { mItems.add("Item " + (i + 1)); } } private void initRecyclerView() { mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView); mRecentRecyclerView.setHasFixedSize(true); mRecentLayoutManager = new LinearLayoutManager(this); mRecentRecyclerView.setLayoutManager(mRecentLayoutManager); mAdapter = new RecyclerView.Adapter<CustomViewHolder>() { @Override public CustomViewHolder …

17
在notifyDatasetChanged()之后,RecyclerView闪烁
我有一个RecyclerView,它从API加载一些数据,包括图像URL和一些数据,并且我使用networkImageView来延迟加载图像。 @Override public void onResponse(List<Item> response) { mItems.clear(); for (Item item : response) { mItems.add(item); } mAdapter.notifyDataSetChanged(); mSwipeRefreshLayout.setRefreshing(false); } 这是适配器的实现: public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) { if (isHeader(position)) { return; } // - get element from your dataset at this position // - replace the contents of the …

13
如何在RecyclerView中更新/刷新特定项目
我正在尝试刷新中的特定项目RecyclerView。 故事:每当用户单击项目时,都会显示AlertDialog。用户可以通过单击确定按钮键入一些文本。我想在此项目中显示此文本并显示不可见ImageView-以XML和适配器声明ViewHolder- 我在AlertDialog正按钮中使用了此功能来更新项目: private void updateListItem(int position) { View view = layoutManager.findViewByPosition(position); ImageView medicineSelected = (ImageView) view.findViewById(R.id.medicine_selected); medicineSelected.setVisibility(View.VISIBLE); TextView orderQuantity = (TextView) view.findViewById(R.id.order_quantity); orderQuantity.setVisibility(View.VISIBLE); orderQuantity.setText(quantity + " packet added!"); medicinesArrayAdapter.notifyItemChanged(position); } 但是,此代码不仅更改了通过位置的itemView,而且还更改了其他一些itemView! 我应该如何通过单击正确更改特定的itemView?

12
RecyclerView GridLayoutManager:如何自动检测跨度计数?
使用新的GridLayoutManager:https : //developer.android.com/reference/android/support/v7/widget/GridLayoutManager.html 它需要一个显式的跨度计数,所以现在的问题就变成了:您如何知道每行有多少个“跨度”?毕竟,这是一个网格。根据测量的宽度,应该有尽可能多的RecyclerView跨度。 使用old GridView,您只需设置“ columnWidth”属性,它将自动检测可容纳多少列。这基本上是我要为RecyclerView复制的内容: 在上添加OnLayoutChangeListener RecyclerView 在此回调中,为单个“网格项”充气并对其进行度量 spanCount = recyclerViewWidth / singleItemWidth; 这似乎是很常见的行为,所以有没有我看不到的更简单方法?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.