欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局

程序员文章站 2022-06-18 13:57:33
1 :本来可以通过 下面两行代码,给RecylerView动态添加 加载中和加载失败的布局,但是下面两行代码想要实现的功能,失效了,目前通过 contenView.add() 来动态添加 adapterdemo.setEmptyView(emptyView); adapterdemo.setEmptyView(R.layout.loading_view);2 : 代码如下:填坑之旅 2.1 布局中,RecylerView 不要通过比重适配,否则 在数据请求成功后,Recyl......

1 :本来可以通过 下面两行代码,给RecylerView动态添加 加载中和加载失败的布局,但是下面两行代码想要实现的功能,失效了,目前通过 contenView.add() 来动态添加

    adapterdemo.setEmptyView(emptyView);
   adapterdemo.setEmptyView(R.layout.loading_view);

2 : 代码如下:填坑之旅

    2.1  布局中,RecylerView 不要通过比重适配,否则 在数据请求成功后, RecylerView 不能显示数据

    2.2  contentView.add(View , posiotion, params)

        position 参数:位置不能再 RecylerView 后面,(因为RecylerView 是match_parent)所以不能显示loadingView

       params 参数:需要设置 loadingViw的 width 和 height 以及 gravity参数属性

 

 private void showLoadingView() {
          //  TODO 放弃了,不知道为啥 adapterdemo.setEmptyView() 不显示,可能是框架的 bug 吧
//        adapterdemo.setEmptyView(emptyView);
//        adapterdemo.setEmptyView(R.layout.loading_view);
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
                FrameLayout.LayoutParams.MATCH_PARENT);
        params.gravity = Gravity.CENTER;
        // 将正在加载中的中间布局 放在 title 的下面
        contentView.addView(emptyView,1, params);
        recylerView.setVisibility(View.GONE);
        emptyView.setVisibility(View.VISIBLE);
    }

    /**
     * 
     * @param isSuccessGet true 直接显示 RecylerView 需要呈现的内容
     *                     fals, 给 根布局 contentView添加一个 errorView
     */
    private void showRecylerView(boolean isSuccessGet) {
        isSuccessGet = false;
        if (isSuccessGet) {
            emptyView.setVisibility(View.GONE);
            recylerView.setVisibility(View.VISIBLE);
        } else {
            recylerView.setVisibility(View.GONE);
            emptyView.setVisibility(View.VISIBLE);
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
            params.gravity = Gravity.CENTER;
            emptyView = LayoutInflater.from(this).inflate(R.layout.error_view,null,false);
            contentView.addView(emptyView,1, params);
        }
    }
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:id="@+id/content_view"
    tools:context=".RecylerViewDemoActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal"
        android:id="@+id/title"
        android:text="RecylerView demo"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="10dp"
        android:layout_marginEnd="10dp"
        android:layout_weight="1"/>
</LinearLayout>

BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局

BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局

本文地址:https://blog.csdn.net/u013620306/article/details/108142351