账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请教一个分页加载数据的问题
    22
    0

    模拟器可以加载更多数据,手机不行.就是用RecyclerView上拉加载更多数据,手机和模拟器都正常联网,加载更多是获取列表初始数据然后在Hanlder设置Adpater之后触发的,模拟器可以正常触发加载更多,真机不行.Hanlder里面我是这样写的:

                   case SHOW_SEARCH_SUCCESS://手动搜索成功
                        mLoading.setVisibility(View.GONE);
                        mNoSearchStatus.setVisibility(View.GONE);
                        mSearching.setVisibility(View.VISIBLE);
                        mNoSearchResult.setVisibility(View.GONE);
                        mHavaResult.setVisibility(View.VISIBLE);
    
                        //搜索结果的RadioButton
                        ColorStateList csl = getResources().getColorStateList(R.color.button_text);//动态加载的RadioButton必须这样设置文字选中和普通颜色
                        //顶部按钮
                        for (int i = 0; i < resultTitles.length; i++) {
                            RadioButton tempButton = new RadioButton(SearchActivity.this);
                            tempButton.setTextColor(csl);//动态加载的RadioButton必须这样设置文字选中和普通颜色
                            tempButton.setButtonDrawable(null);           // 设置按钮的样式
                            tempButton.setText(resultTitles[i]);
                            tempButton.setId(i);
                            tempButton.setTextSize(15);
                            tempButton.setButtonDrawable(R.drawable.channel_button_shape);
                            tempButton.setPadding(30, 0, 30, 0);
                            tempButton.setBackgroundResource(R.drawable.channel_title_selector);
                            tempButton.setGravity(Gravity.CENTER);
                            RadioGroup.LayoutParams lp = new RadioGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
                                    ViewGroup.LayoutParams.WRAP_CONTENT);
                            lp.setMargins(15, 0, 15, 0);//设置RadioButton的边距
    //                        mRadioGroup.addView(tempButton, lp);//TODO:临时不显示顶部按钮
                            if (i == 0) {
                                mRadioGroup.check(tempButton.getId());
                            }
                        }
                        //加载页面数据
                        mPageDatas = new ArrayList<>();
                        for (int i = 0; i < resultTitles.length; i++) {
                            mPageDatas.add(new SearchResultController(SearchActivity.this));//顶部有多少个RadioButton,ViewPager页面就添加多少个
                        }
                        //首次进来默认获取第一个RadioButton的数据
    //                    getListData(0);
                        mViewPager.setAdapter(mPagerAdapter);
                        mRadioGroup.setOnCheckedChangeListener(SearchActivity.this);
                        mViewPager.addOnPageChangeListener(SearchActivity.this);
                        mPagerAdapter.notifyDataSetChanged();
    
                        TabController tabController = mPageDatas.get(0);
                        View rootView = tabController.getRootView();
                        RecyclerView recyclerView = rootView.findViewById(R.id.rv_have_result);
                        //创建布局管理
                        LinearLayoutManager layoutManager = new LinearLayoutManager(SearchActivity.this);
                        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
                        recyclerView.setLayoutManager(layoutManager);
                        searchHaveResultAdapter = new SearchResultAdapter(R.layout.item_search_have_result, mHavaResultDatas, SearchActivity.this);
                        recyclerView.setAdapter(searchHaveResultAdapter);
    
                        searchHaveResultAdapter.setOnLoadMoreListener(SearchActivity.this);//加载更多数据
                        break;
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 招人烦°惹人厌 普通会员 1楼

      分页加载数据通常是在用户浏览网页时,对需要显示的数据进行分块加载。这种加载方式可以避免一次性加载过多的数据,提高用户体验,也能保证数据的完整性和一致性。

      以下是一个基本的分页加载数据的步骤:

      1. 创建一个数据列表:根据需要展示的数据,创建一个数据列表。这个列表应该包含数据的分页信息,例如页码和每页显示的数据数量。

      2. 检查每页数据:在每次请求数据时,检查每页的数据数量。如果超过指定的每页数据数量,就跳过当前页,开始加载下一页的数据。

      3. 请求数据:在请求数据时,根据每页的数据数量,请求相应的数据。如果当前页的数据还没有加载完,就等待下一次请求数据。

      4. 更新数据列表:每次请求数据后,都需要更新数据列表,包含新的数据和每页的数据数量。

      5. 更新页面内容:最后,根据数据列表的内容,更新页面的内容。

      以下是一个使用Python和Flask框架的简单示例:

      ```python from flask import Flask, request, render_template

      app = Flask(name)

      @app.route('/') def home(): data_list = [ {"name": "John", "age": 25, "city": "New York"}, {"name": "Jane", "age": 30, "city": "Los Angeles"}, {"name": "Mike", "age": 35, "city": "Chicago"} ] return render_template('home.html', data_list=data_list)

      @app.route('/page/') def page(page): if page < 1 or page > len(data_list): return render_template('page.html', error="Invalid page number") else: data_list = data_list[:page] return render_template('page.html', data_list=data_list)

      if name == 'main': app.run(debug=True) ```

      在这个示例中,我们定义了一个名为home.html的模板,它显示每个用户的个人资料。我们还定义了一个名为page.html的模板,它显示当前页的数据。在page.html中,我们检查用户请求的页码是否在允许的范围内,如果不在,就返回一个错误消息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部