清空RecyclerView后,layout_centerInParent无法工作

时间:2019-07-20 00:00:46

标签: java android android-recyclerview

我正在尝试将另一个ViewHolder与相同的RecyclerView一起使用,我要充气的布局基本上是RelativeLyout和ProgressBar作为它的子级。问题在于,ProgressBar具有一个属性CenterInParent =“ True”,该属性在放大进度栏保持在屏幕左侧的布局后不起作用,即使在preView中显示为正确地将屏幕居中,也似乎出现了问题与膨胀过程一样,在调试时,我没有看到膨胀视图的任何centerInParent属性。

我尝试了LinearLayout和ConstraintLayout,甚至尝试设置布局参数都没有用。我还尝试将充气式布局的父级更改为相对布局,因为实际的父级是回收者视图,但也没有用。

这是我要充气的ViewHolder的布局。

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ProgressBar
    android:layout_width="75dp"
    android:layout_height="75dp"
    android:layout_centerInParent="true"/>

这是适配器

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
     View view;
    switch (viewType) {
        //Case List recipes
        case RECIPE_TYPE: {
            RecipeItemBinding mRecipeItemBinding = RecipeItemBinding.inflate(
                    LayoutInflater.from(parent.getContext()), parent, false);
            return new MyViewHolder(mRecipeItemBinding, onRecipeClickListener);
        }
        //Case Loading layout
        case LOADING_TYPE: {
            view = LayoutInflater.from(parent.getContext()).inflate(
                    R.layout.layout_loading_list_item, parent, false);
            return new LoadingViewHolder(view);
        }


 public class LoadingViewHolder extends RecyclerView.ViewHolder {
    public LoadingViewHolder(@NonNull View itemView) {
        super(itemView);
    }
}

1 个答案:

答案 0 :(得分:0)

我写了答案,希望对其他人有帮助,我只是想出了什么办法,问题出在RecyclerView的宽度上,因为它是wrap_content,应该是match_parent。