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

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

在这里输入图像说明

我的代码:

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

Solutions Collecting From Web of "Android卧式回收器查看滚动方向"

假设您在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};}