java - 如果显示 recyclerView,如何停止显示加载?
问题描述
如果显示回收器,我想停止显示进度条
ProgressBar progressBar = findViewById(R.id.progressbar);
if (recyclerView.isShown()){
progressBar.setVisibility(View.GONE);
}
else {
progressBar.setVisibility(View.VISIBLE);
}
这是我在 android studio 中的 xml
<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/all_user_post_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/search_posts" />
我希望适配器处于 mainactivity 中,并且适配器将显示在 mainactivity 中,我猜就是这样
public class MainActivity extends AppCompatActivity {
EditText search;
String currentUserID;
private RecyclerView recyclerView;
private List<Posts> postList;
private AdapterPost adapterPost;
@Override
protected void onCreate(Bundle savedInstanceState) {
MultiDex.install(this);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.all_user_post_list);
LinearLayoutManager layoutManager = new
LinearLayoutManager(MainActivity.this);
layoutManager.setStackFromEnd(true);
layoutManager.setReverseLayout(true);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
postList = new ArrayList<>();
LoadEveryUsersPosts();
解决方案
试试这个代码:
View recyclerview= (RecyclerView) findViewById(R.id.all_user_post_list);
recyclerview.getViewTreeObserver()
.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
progressBar.setVisibility(View.GONE);
recyclerview.getViewTreeObserver().removeOnGlobalLayoutListener(this);
//prevent infinite loop
}
});
推荐阅读
- css - 将组件与其下方的另一个组件并排反应
- python - 在 python 中裁剪视频
- .net - 在 .netFramework 4.5 应用程序中使用 Prometheus 获取 HTTP 状态
- html - 从边缘对 LI 的悬停效果
- c# - 如何将空值存储到字典c#
- postgresql - 如何导入带有分隔符“”的文本文件以在 PostgreSQL 数据库中创建表?
- swift - 如何在消耗性表格视图单元格内制作动态集合视图
- javascript - 使用正则表达式检查字符串错误中的 pangram
- cassandra - 与 Cassandra 1.2 相比,Cassandra 3 读取延迟巨大
- vue.js - 如何调用作为属性值的函数?(vue)