相关疑难解决方法(0)

RecyclerView notifyDataSetChanged滚动到顶部位置

打电话时notifyDataSetChangedRecyclerView 其滚动位置和卷轴不保留顶部,有没有解决方案,保留它的滚动位置?

android android-appcompat android-recyclerview

17
推荐指数
3
解决办法
2万
查看次数

notifyItemChanged()使RecyclerView滚动并跳转到UP

我有一个带有适配器的RecycleView,它显示了一个服务器列表,用户必须选择一个服务器.

当我在onClick()方法中调用notifyItemChanged(previousPosition)以使旧服务器未被选中并选择新服务器时,这使得RecycleView列表完全跳到列表中间.

当我点击RecycleView列表中最后2或3个服务器之一时,会发生此问题

这是我的RecyclerView.Adapter的代码:

public class ServerAdapter extends RecyclerView.Adapter<ServerAdapter.ServerViewHolder> {

    private List<Server> listServers = new ArrayList<>();
    private int[] icons = new int[]{R.drawable.server1,R.drawable.server2,R.drawable.server3,R.drawable.server4,R.drawable.server5,R.drawable.server6,R.drawable.offline};
    private int selected = 0;
    private int previousSelected = 0;

    public ServerAdapter(List<Server> listServers){
        this.listServers = listServers;
    }

    @Override
    public ServerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.server_relative_layout,parent,false);
        return new ServerViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final ServerViewHolder holder, final int position) {
        if(position == selected){
            holder.getBackground().setSelected(true);
        }else{
            holder.getBackground().setSelected(false);
        }
        holder.getBackground().setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) …
Run Code Online (Sandbox Code Playgroud)

android recycler-adapter android-recyclerview

12
推荐指数
3
解决办法
6768
查看次数

在Recyclerview适配器上设置notifyDataSetChanged()

我正在为RecyclerView实现无休止的数据加载.当软件检测到将显示最后一个项目时,它会下载新项目并调用该loadMoreData()函数,但不会显示新数据集.

当我打电话时notifyDataSetChanged(),没有什么事情发生.

我只有一个刷新视图的解决方案是再次设置适配器,但问题是recyclerview返回到第一个位置然后再次recyclelerview从第一个位置向上滚动到最后一个位置.

RecyclerViewActivity.java

    RecyclerView rv;

    DatabaseHelpr databaseHelpr;

    RVAdapter adapter;

    LocationFinder locationfinder;

    Location currentLocation;

    ArrayList<ServiceModel> childList, list;

    private int MainService_ID, city_id;

    String url2;

    ActionBar actionBar;

    JSONArray items = null;

    Utility utility;

    Double lat, longi;

    LinearLayoutManager llm;

    int counter=0;

    ProgressBar progressBar;

    private static final String TAG_ITEMS = "items";

    private static final String TAG_LOCALITY = "Locality";

    private static final String TAG_BUSINESS_ID = "Business_Id";

    private static final String TAG_LONGITUDE = "Longitude";

    private static final String TAG_BUSINESS_NAME = "Business_Name";

    private …
Run Code Online (Sandbox Code Playgroud)

android notifydatasetchanged endlessscroll recycler-adapter android-recyclerview

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