Recyclerview:CardView中的ImageView居中并在滚动之前隐藏其他textview

时间:2018-11-20 05:57:56

标签: android layout android-recyclerview

我正在尝试在RecyclerView中提供一个CardView,其中有3个textviews和一个imageView。问题是,如果在开始滚动之前,将imageView完全填充在cardview中,并且即使cardview内部的相对布局应该将图像保留在左侧,文本视图也将被隐藏。滚动后,如果我对列表进行排序并更新适配器,除最后一个工作(如我希望的那样)之外的所有卡片视图,某些卡片视图将最终寻找我想要它们的方式。

以下是相关的XML: 卡视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:padding="4dp">
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/cv"
        >
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="1dp"
            >
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cv_photo"
                android:layout_alignParentStart="true"
                android:layout_alignParentTop="true"
                android:layout_marginEnd="1dp"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cv_name"
                android:layout_toEndOf="@+id/cv_photo"
                android:layout_alignParentTop="true"
                android:textSize="14sp"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cv_number"
                android:layout_toEndOf="@+id/cv_photo"
                android:layout_below="@+id/cv_name"
                />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/cv_date"
                android:layout_toEndOf="@+id/cv_photo"
                android:layout_below="@+id/cv_number"
                />
        </RelativeLayout>
    </android.support.v7.widget.CardView>
</LinearLayout>

RecyclerView:

<android.support.v7.widget.RecyclerView
        android:id="@+id/ProfileRecycler"
        android:layout_width="368dp"
        android:layout_height="491dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_below="@+id/viewbox"
        android:clipToPadding="false"

        />

适配器代码(具有所有必要的内容)

@Override
    public ProfileViewHolder onCreateViewHolder(ViewGroup viewGroup, int i){
        View view = LayoutInflater.from(segruppe.getContext()).inflate(R.layout.profileview,viewGroup,false);
        ProfileViewHolder holder = new ProfileViewHolder(view);
        return holder;

    }
    @Override
    public void onBindViewHolder(ProfileViewHolder ProfileViewHolder,int i){
        profileViewHolder.name.setText(profiles.get(i).getName());
        profileViewHolder.number.setText(String.valueOf(profiles.get(i).getNumber()));
        profileViewHolder.dato.setText(profiles.get(i).getDate().toString());
        if(profiles.get(i).getImage()!=null)
        Glide.with(context).load(profiles.get(i).getImage()).into(profileViewHolder.image);
    }

用于创建cardview回收站的片段代码:

profileRecycler = getView().findViewById(R.id.ProfileRecycler);
profileAdapter = new ProfileAdapter(getContext(),profileList);
GridLayoutManager glm = new GridLayoutManager(getActivity(),4, LinearLayoutManager.HORIZONTAL,false);
profileRecycler.setLayoutManager(glm);
profileRecycler.setAdapter(profileAdapter);

有人可以看到这里出了什么问题吗? (可能值得一提的是,如果cardview中没有imageView,则它在滚动时和滚动后都应该保持完全静态)

0 个答案:

没有答案