Android卧式回收器查看滚动方向

我做了一个水平的RecyclerView,它工作正常(感谢这一点 ),但滚动和数据的方向从左到右扩大; 那么我怎样才能改变RecyclerView的滚动方向,如下图所示?

在这里输入图像说明

我的代码:

StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager( 2, //The number of Columns in the grid LinearLayoutManager.HORIZONTAL); 

  • 如何获得RecyclerView的触摸反馈?
  • RecyclerView.ViewHolder总是必须是一个内部类吗?
  • 使用GridLayoutManager的RecyclerView试图解决wrap_content
  • 在Android的RecyclerView中检测animation完成
  • 将纹波效果添加到RecyclerView项目
  • 如何使用Espresso计算RecyclerView项目
  • RecyclerView适配器的生命周期是什么?
  • NestedScrollView内的Recycler视图使滚动在中间开始
  • 假设您在RecyclerView中使用LinearLayoutManager ,那么您可以在LinearLayoutManager构造函数中传递true作为第三个参数。

    例如:

     mRecyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, true)); 

    如果使用StaggeredGridLayoutManager ,则可以使用它提供的setReverseLayout方法。

    你可以用xml来完成。

    应用程序:reverseLayout =“true”做这个工作!

     <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@null" android:orientation="horizontal" app:reverseLayout="true" app:layoutManager="android.support.v7.widget.LinearLayoutManager" /> 

    使用imageview和textview的水平RecyclerView

    xml文件

    main.xml中

     <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:orientation="vertical" android:background="#070e94"> <View android:background="#787878" android:layout_width="match_parent" android:layout_height="1dp" /> <android.support.v7.widget.RecyclerView android:id="@+id/wallet" android:background="#070e94" android:layout_width="match_parent" android:layout_height="100dp"/> 

    item.xml

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="100dp" android:layout_height="match_parent" android:layout_marginTop="5dp"> <ImageView android:id="@+id/image" android:layout_width="50dp" android:layout_height="50dp" android:scaleType="fitXY" android:src="@drawable/bus" android:layout_gravity="center"/> <TextView android:textColor="#000" android:textSize="12sp" android:layout_gravity="center" android:padding="5dp" android:id="@+id/txtView" android:textAlignment="center" android:hint="Electronics" android:layout_width="80dp" android:layout_height="wrap_content" /> 

    Java类

    ActivityMaim.java

     public class MainActivity extends AppCompatActivity{ private RecyclerView horizontal_recycler_view; private ArrayList<Arraylist> horizontalList; private CustomAdapter horizontalAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); horizontal_recycler_view= (RecyclerView) findViewById(R.id.horizontal_recycler_view); horizontalList = new ArrayList<Arraylist>(); for (int i = 0; i < MyData.nameArray.length; i++) { horizontalList.add(new Arraylist( MyData.nameArray[i], MyData.drawableArray[i] )); } horizontalAdapter=new CustomAdapter(horizontalList); LinearLayoutManager horizontalLayoutManagaer = new LinearLayoutManager(MainActivity.this, LinearLayoutManager.HORIZONTAL, false); horizontal_recycler_view.setLayoutManager(horizontalLayoutManagaer); horizontal_recycler_view.setAdapter(horizontalAdapter); }} 

    Adaper类

    CustomAdapter.java

     public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> { private ArrayList<Arraylist> dataSet; public static class MyViewHolder extends RecyclerView.ViewHolder { TextView textViewName; ImageView imageViewIcon; public MyViewHolder(View itemView) { super(itemView); this.textViewName = (TextView) itemView.findViewById(R.id.txtView); //this.textViewVersion = (TextView) itemView.findViewById(R.id.textViewVersion); this.imageViewIcon = (ImageView) itemView.findViewById(R.id.image); itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (getPosition()==0) { Toast.makeText(v.getContext(), " On CLick one", Toast.LENGTH_SHORT).show(); } if (getPosition()==1) { Toast.makeText(v.getContext(), " On CLick Two", Toast.LENGTH_SHORT).show(); } if (getPosition()==2) { Toast.makeText(v.getContext(), " On CLick Three", Toast.LENGTH_SHORT).show(); } if (getPosition()==3) { Toast.makeText(v.getContext(), " On CLick Fore", Toast.LENGTH_SHORT).show(); } } }); } } public CustomAdapter(ArrayList<Arraylist> data) { this.dataSet = data; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(R.layout.card_view, parent, false); //view.setOnClickListener(MainActivity.myOnClickListener); MyViewHolder myViewHolder = new MyViewHolder(view); return myViewHolder; } @Override public void onBindViewHolder(final MyViewHolder holder, final int listPosition) { TextView textViewName = holder.textViewName; // TextView textViewVersion = holder.textViewVersion; ImageView imageView = holder.imageViewIcon; textViewName.setText(dataSet.get(listPosition).getName()); //textViewVersion.setText(dataSet.get(listPosition).getVersion()); imageView.setImageResource(dataSet.get(listPosition).getImage()); } @Override public int getItemCount() { return dataSet.size(); }} 

    Arraylist.java

     public class Arraylist{ String name; int image; public Arraylist(String name, int image) { this.name = name; this.image=image; } public String getName() { return name; } public int getImage() { return image; }} 

    MyData.java

     public class MyData { static String[] nameArray = {"Gas", "Insurance", "Electronics", "Other Services"}; static Integer[] drawableArray = {R.drawable.gas_gas, R.drawable.insurance, R.drawable.electric, R.drawable.services};}