BRVAH官方使用指南(转载)动态添加 加载中布局和加载失败布局
程序员文章站
2022-03-03 22:01:25
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