【问题标题】:how to show right to left one by one cardview that usage Recyclerview?如何从右到左一一显示使用Recyclerview的cardview?
【发布时间】:2018-01-17 05:27:04
【问题描述】:

我有使用水平 RecyclerView 的卡片视图。 我想通过从右到左滚动移动卡片,一个不一样的列表可能与标签行为有关。 通过用户滚动只需滚动到另一张卡片。

这是 MainActivity 类

package ... .myapplication2;

import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
  private RecyclerView mRecyclerView;
  private RecyclerView.Adapter mAdapter;
  private RecyclerView.LayoutManager mLayoutManager;
  private ArrayList<String> mDataset;
  private Context context;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mDataset=new ArrayList<>();
    for (int i = 1; i <51 ; i++) {
      mDataset.add("New Title "+i);
    }

    mRecyclerView=(RecyclerView)findViewById(R.id.recycler_view);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter=new MainAdapter(mDataset);
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.scrollToPosition(one);


  }

}

 this is MainAdapter class 


package... .myapplication2;

import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;

public class MainAdapter extends RecyclerView.Adapter<MainAdapter.ViewHolder> {
  private ArrayList<String> mDataset;

  public MainAdapter(ArrayList<String> mDataset) {
    this.mDataset = mDataset;
  }

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

  @Override
  public void onBindViewHolder(MainAdapter.ViewHolder holder, int position) {
    holder.mTitle.setText(mDataset.get(position));
  }

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

  public class ViewHolder extends RecyclerView.ViewHolder {
    public TextView mTitle;

    public ViewHolder(View itemView) {
      super(itemView);
      mTitle = (TextView) itemView.findViewById(R.id.title);
    }
  }
}

 this is activity_main.xml in layout res

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="... .MainActivity">



    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</RelativeLayout>

这是布局 res 中的 row.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
                                    android:layout_width="match_parent"
                                    android:layout_height="200dp"
                                    android:layout_margin="12dp"
                                    android:orientation="vertical"
                                    android:backgroundTint="@android:color/holo_blue_light"
                                    android:backgroundTintMode="multiply">

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />

</android.support.v7.widget.CardView>

【问题讨论】:

  • 请回答 qstn.thanks 的问候

标签: android android-fragments android-recyclerview material-design cardview


【解决方案1】:

试试这个库:RecyclerViewPager

【讨论】:

    【解决方案2】:

    我认为你有两种解决方案:

    第一个添加 SnapHelper:

    SnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(recyclerView);
    

    第二个是使用自定义 ViewPager...

    【讨论】:

    • 将它添加到底部的 MainActivity onCreate() 方法中,并告诉我它是否有效
    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多