Java 未从LinearLayout中的RecyclerView刷新布局

Java 未从LinearLayout中的RecyclerView刷新布局,java,android,android-recyclerview,Java,Android,Android Recyclerview,我在滚动视图中的线性布局中有一个回收视图 我从网络上获取RecyclerView的项目,因此我必须notifyDataSetChanged 这正在工作-我在适配器中获取新数据。但是视图没有改变 这里是我上面写的xml: 当我得到数据时…: public void initAdapter(ArrayList列表){ //初始化:传递了streams元素 this.streams.addAll(列表); //RecyclerView适配器 mBitmovinAdapter.notifyData

我在
滚动视图中的
线性布局中有一个
回收视图

我从网络上获取
RecyclerView
的项目,因此我必须
notifyDataSetChanged

这正在工作-我在适配器中获取新数据。但是视图没有改变

这里是我上面写的xml:


当我得到数据时…:

public void initAdapter(ArrayList列表){
//初始化:传递了streams元素
this.streams.addAll(列表);
//RecyclerView适配器
mBitmovinAdapter.notifyDataSetChanged();
mLinearLayout.invalidate();
mRecyclerView.invalidate();
}
和我的适配器..:

BitmovinAdapter(ArrayList流){
this.mStreams=流;
}
ArrayList mStreams;
类BitmovinHolder扩展了RecyclerView.ViewHolder{
文本视图标题;
文本视图格式;
ImageView海报;
公共BitmovinHolder(最终视图){
超级(视图);
title=(TextView)view.findViewById(R.id.title);
format=(TextView)view.findViewById(R.id.format);
poster=(ImageView)view.findViewById(R.id.poster);
view.setOnClickListener(新的view.OnClickListener(){
@凌驾
公共void onClick(视图v){
BasePlayerActivity.launchPlayerActivity(view.getTag().toString(),title.getText().toString(),0,MainActivity.debug,view.getContext());
}
});
}
}
@凌驾
BindViewHolder上的公共无效(BitmovinHolder holder,int位置){
Stream=mStreams.get(位置);
holder.title.setText(stream.title);
holder.format.setText(stream.format);
Glide.with(holder.poster.getContext()).load(stream.poster).into(holder.poster);
holder.itemView.setTag(stream.stream);
}
@凌驾
公共BitmovinHolder onCreateViewHolder(视图组父级,int-viewType){
返回新的BitmovinHolder(LayoutInflater.from(parent.getContext())。充气(R.layout.list_项,parent,false));
}
@凌驾
public int getItemCount(){
返回mStreams.size();
}

将数据设置为适配器,然后调用notifyDataSetChanged

mPagerAdapter.setData(streams);
mPagerAdapter.notifyDataSetChanged();

将数据设置为适配器,然后调用notifyDataSetChanged

mPagerAdapter.setData(streams);
mPagerAdapter.notifyDataSetChanged();
在RecyclerView中试试这个 在您的RecyclerView.Adapter中添加此方法

ArrayList<Stream> list
/*
 * Inserting a new item at the head of the list. This uses a specialized
 * RecyclerView method, notifyItemInserted(), to trigger any enabled item
 * animations in addition to updating the view.
 */
public void addItem(int position) {
    if (position > list.size()) return;
    list.add(position, generateDummyItem());
    notifyItemInserted(position);
}
ArrayList列表
/*
*在列表的开头插入新项。这使用了专门的
*RecyclerView方法notifyItemInserted(),以触发任何启用的项
*除了更新视图之外,还有动画。
*/
公共无效附加项(内部位置){
if(position>list.size())返回;
list.add(position,generateDummyItem());
(位置);
}
在RecyclerView中尝试此功能 在您的RecyclerView.Adapter中添加此方法

ArrayList<Stream> list
/*
 * Inserting a new item at the head of the list. This uses a specialized
 * RecyclerView method, notifyItemInserted(), to trigger any enabled item
 * animations in addition to updating the view.
 */
public void addItem(int position) {
    if (position > list.size()) return;
    list.add(position, generateDummyItem());
    notifyItemInserted(position);
}
ArrayList列表
/*
*在列表的开头插入新项。这使用了专门的
*RecyclerView方法notifyItemInserted(),以触发任何启用的项
*除了更新视图之外,还有动画。
*/
公共无效附加项(内部位置){
if(position>list.size())返回;
list.add(position,generateDummyItem());
(位置);
}

在添加新元素之前,请尝试类似于
adapter.clear()的方法。然后在添加新元素之前,调用
adapter.addAll()

尝试类似
adapter.clear()
的操作。然后调用
adapter.addAll()

当您有新列表要显示时,您必须将其再次设置为适配器。只有这样它才能更新视图。您刚刚将新列表再次添加到列表中。但是您需要将now列表设置为适配器。编写一个新方法以获取适配器中的列表。然后写下我在活动中提到的两行。它会成功的!我现在用minHeight测试了它,我看到了一些项目…-我想,我这样做自动和自动高度(适合屏幕)当你有新的列表显示,你必须再次设置为适配器。只有这样它才能更新视图。您刚刚将新列表再次添加到列表中。但是您需要将now列表设置为适配器。编写一个新方法以获取适配器中的列表。然后写下我在活动中提到的两行。它会成功的!我现在用minHeight测试了它,我看到了一些项目…-我希望我能自动完成这项工作,并使用自动高度(适合屏幕)功能。你真的理解我的问题吗?|如果我理解你的意思:那不是我的问题,通过这可能是你的问题得到解决。链接到其他评论(这个问题):你真的理解我的问题吗如果我理解你的意思:这不是我的问题,请仔细检查,这可能是你的问题得到解决。链接到其他注释(此问题):添加新数据后,你是否滚动到列表末尾以检查新数据?recyclerview在启动时为空-因此viewpagerlink到其他注释(此问题):添加新数据后,是否滚动到列表末尾以检查新数据?recyclerview在启动时为空-因此viewpagerlink指向其他注释(此问题):
ArrayList<Stream> list
/*
 * Inserting a new item at the head of the list. This uses a specialized
 * RecyclerView method, notifyItemInserted(), to trigger any enabled item
 * animations in addition to updating the view.
 */
public void addItem(int position) {
    if (position > list.size()) return;
    list.add(position, generateDummyItem());
    notifyItemInserted(position);
}