在RecylerView上设置进度条,并在加载数据后删除

fre*_*nes 9 android android-layout

我希望有一个加载图标显示在RecyclerView的顶部,并在数据加载完成后消失

它看起来像:

在此输入图像描述

谁能帮我吗?

我的代码显示了RecyclerView上方的TextView,显示"正在加载..."并在加载数据后消失,但RecyclerView仍然可见.

我的XML:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/loaderTV"
    android:text="Loading..."
    android:layout_above="@+id/eventListRV"/>

<android.support.v7.widget.RecyclerView
    android:scrollbars="vertical"
    android:id="@+id/eventListRV"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/spinner">



    </android.support.v7.widget.RecyclerView>
Run Code Online (Sandbox Code Playgroud)

然后在我的代码中

client.listCreators(request, new Callback<ServiceResponse<Event>>() {
            @Override
            public void success(ServiceResponse<Event> eventServiceResponse, Response response) {
                eventList.addAll(eventServiceResponse.data.results);
                Log.i("tag", String.valueOf(eventServiceResponse.data.total));

                if (eventList.size() > 60) {
                    adapter.notifyDataSetChanged();
                    loadingText.setVisibility(View.GONE);
                }
            }
Run Code Online (Sandbox Code Playgroud)

但我希望RecyclerView在数据加载时不可见,我希望在RecyclerView所在的进度条上面,我不希望它成为textview

Qua*_*ium 17

  1. 将您的RecyclerView和加载布局(或TextView)包装在FrameLayout中.将两者设置match_parent为宽度和高度.
  2. 在活动的onCreate()或片段的onCreateView()中隐藏RecyclerView: recyclerView.setVisibility(View.GONE);
  3. 在你的回调方法中隐藏加载布局setVisibility(View.GONE),显示你的RecyclerView setVisibility(View.VISIBLE)并触发重新加载适配器adapter.notifyDataSetChanged()


Tic*_*haz 8

回收者视图。

  1. 使用RelativeLayout. ProgressBar准备android:layout_centerInParent="true"

    <ProgressBar
        android:id="@+id/progressbar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />
    
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    
    Run Code Online (Sandbox Code Playgroud)

  2. MainViewAdapter extends RecyclerView.Adapter<MainViewAdapter.MyViewHolder>

onBindViewHolder

 @Override
 public void onBindViewHolder(@NonNull MyViewHolder holder, final int position) {
 MainItem mainItem = mainItemList.get(position);
 holder.getTextViewTitle().setText(mainItem.getNameMain());

 //all your code here...

 //After that display progressbar at the below
 progressBar.setVisibility(View.GONE);
 }
Run Code Online (Sandbox Code Playgroud)