当前位置: 移动技术网 > 移动技术>移动开发>IOS > BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局

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

2020年08月01日  | 移动技术网移动技术  | 我要评论
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>

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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网