CardStackView не работает со Scrollview? - PullRequest
0 голосов
/ 07 августа 2020

Я использую библиотеку CardStackView, но я также хочу прокрутить ее элемент и поменять местами только влево и вправо

public class CardFragment extends Fragment implements CardStackListener {
private View view;
FragmentCardBinding binding;
CardStackLayoutManager manager;
CardStackAdapter cardStackAdapter;
private List<CardModel> listCard = new ArrayList<CardModel>();
public static MyAppAdapter myAppAdapter;
public static ViewHolder viewHolder;
private ArrayList<Data> array;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    binding = DataBindingUtil.inflate(
            inflater, R.layout.fragment_card, container, false);

    manager = new CardStackLayoutManager(getContext());

    listCard.add(new CardModel("MaryBurgess", "steattle, USA", "USA", R.drawable.imggirl));
    listCard.add(new CardModel("MaryBurgess", "steattle, USA", "USA", R.drawable.imggirl));
    listCard.add(new CardModel("MaryBurgess", "steattle, USA", "USA", R.drawable.imggirl));
    listCard.add(new CardModel("MaryBurgess", "steattle, USA", "USA", R.drawable.imggirl));


    manager.setStackFrom(StackFrom.None);
    manager.setVisibleCount(3);
    manager.setTranslationInterval(8.0f);
    manager.setScaleInterval(0.95f);
    manager.setSwipeThreshold(0.3f);
    manager.setMaxDegree(20.0f);
    manager.setDirections(Direction.HORIZONTAL);
    manager.setCanScrollHorizontal(true);
    manager.setCanScrollVertical(true);

   binding.cardStackView.setLayoutManager(manager);
    cardStackAdapter = new CardStackAdapter(listCard, getActivity());
    binding.cardStackView.setAdapter(cardStackAdapter);
    binding.imgFilter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent intent = new Intent(getContext(), LookingFor.class);
            startActivity(intent);
            getActivity().finish();

        }
    });

    myAppAdapter = new MyAppAdapter(listCard, getContext());
 
    return view = binding.getRoot();

}

@Override
public void onCardDragging(Direction direction, float ratio) {

}

@Override
public void onCardSwiped(Direction direction) {
    Log.d("CardStackView", String.valueOf(direction));
    }

@Override
public void onCardRewound() {

}

@Override
public void onCardCanceled() {

}

вот класс адаптера

public class CardStackAdapter extends RecyclerView.Adapter<CardStackAdapter.ViewHolder> {

private List<CardModel> listCard = new ArrayList<CardModel>();
private Context c;

public CardStackAdapter(List<CardModel> listCard,Context c ) {
    this.listCard = listCard;
    this.c = c;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item, parent, false);
    ViewHolder vh = new ViewHolder(v);
    return vh;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    holder.username.setText(listCard.get(position).getName());
    holder.cityName.setText(listCard.get(position).getCity());
    Glide.with(holder.item_image)
            .load(listCard.get(position).getUserImage())
            .into(holder.item_image);


}

@Override
public int getItemCount() {
    return listCard.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
    TextView username, cityName;
    RoundedImageView item_image;



    public ViewHolder(@NonNull View itemView) {
        super(itemView);
        username = itemView.findViewById(R.id.user_name);
        cityName = itemView.findViewById(R.id.city_name);
        item_image = itemView.findViewById(R.id.item_image);

    }
}
}

и адаптер XML :

<?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:card_view="http://schemas.android.com/tools"
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ScrollView
    android:fillViewport="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.cardview.widget.CardView

            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="?attr/selectableItemBackground"
            android:foreground="?attr/selectableItemBackground"
            app:cardBackgroundColor="@android:color/white"
            app:cardCornerRadius="8dp"
            app:cardPreventCornerOverlap="false"
            app:cardUseCompatPadding="true">

            <com.makeramen.roundedimageview.RoundedImageView
                android:id="@+id/item_image"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="fitXY"
                android:src="@drawable/imggirl"
                app:riv_corner_radius="8dp" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="bottom"
                android:layout_marginBottom="20dp"
                android:orientation="vertical"
                android:padding="16dp">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">


                    <com.bugfreecode.anotherchanz.fonts.GothamBookBold
                        android:id="@+id/user_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="MaryBurgess"
                        android:textColor="@android:color/white"
                        android:textSize="26sp"
                        android:textStyle="bold" />

                    <ImageView
                        android:layout_width="18dp"
                        android:layout_height="18dp"
                        android:src="@drawable/verified" />

                </LinearLayout>
                <TextView

                    android:id="@+id/city_name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Steattle, USA"
                    android:textColor="@android:color/white"
                    android:textSize="16dp"
                    android:textStyle="bold" />
            </LinearLayout>

            <FrameLayout
                android:id="@+id/left_overlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageView
                    android:layout_width="150dp"
                    android:layout_height="150dp"
                    android:layout_gravity="center"
                    android:src="@drawable/dislike" />

                <FrameLayout
                    android:id="@+id/bottom_overlay"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                </FrameLayout>

            </FrameLayout>
            <FrameLayout
                android:id="@+id/right_overlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <ImageView
                    android:layout_width="150dp"
                    android:layout_height="150dp"
                    android:layout_gravity="center"
                    android:src="@drawable/like" />

            </FrameLayout>

            <FrameLayout
                android:id="@+id/top_overlay"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

            </FrameLayout>

        </androidx.cardview.widget.CardView>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/lytChips"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="20dp"
        android:layout_marginRight="15dp"
        android:orientation="vertical">

        <com.google.android.material.chip.ChipGroup
            android:id="@+id/choice_chip_group"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <com.google.android.material.chip.Chip
                card_view:iconStartPadding="10dp"
                card_view:chipIconSize="15dp"
                android:drawablePadding="5dp"
                android:id="@+id/choice_chip5"
                android:textColor="@color/white"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Architecture/Interior design"
                android:textAppearance="@style/AppTheme.GenderChip"
                android:theme="@style/Theme.MaterialComponents.Light"
                app:chipStartPadding="8dp"
                app:chipStrokeWidth="1dp" />
        </com.google.android.material.chip.ChipGroup>
    </LinearLayout>
    </LinearLayout>
</ScrollView>
</LinearLayout>

фрагмент XML

<?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto">

  <data>

  </data>

<LinearLayout
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">


    <LinearLayout

        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="@drawable/gradiant_back">




        <com.bugfreecode.anotherchanz.fonts.GothamBookBold
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginStart="30dp"
            android:gravity="center"
            android:letterSpacing="0.23"
            android:singleLine="true"
            android:text="Anotherchanz"
            android:textAllCaps="true"
            android:textColor="@color/white"
            android:textSize="23sp"
            android:textStyle="bold" />

        <ImageView
            android:id="@+id/imgFilter"
            android:layout_marginEnd="20dp"
            android:layout_width="22dp"
            android:layout_height="22dp"
            android:layout_gravity="center"
            android:layout_marginStart="20dp"
            android:src="@drawable/ic_filler" />

    </LinearLayout>

    <LinearLayout

        android:background="@drawable/back_full"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

   <!--     <com.lorentzos.flingswipe.SwipeFlingAdapterView
            android:id="@+id/flingContainer"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/gradiant_back"
            app:rotation_degrees="15.5" />-->

        <com.yuyakaido.android.cardstackview.CardStackView
            android:layout_marginStart="5dp"
            android:layout_marginEnd="5dp"
            android:layout_marginTop="5dp"
            android:layout_marginBottom="10dp"
            android:id="@+id/card_stack_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
        </com.yuyakaido.android.cardstackview.CardStackView>



    </LinearLayout>

</LinearLayout>

Замена карты работает отлично, но я хочу, чтобы карта прокручивалась вертикально, также я использовал режим прокрутки в элементах адаптера, но он не работает он работает только для обмена, пожалуйста, помогите мне, я буду признателен за каждый ответ.

...