studio recyclerview lista implement horizontal ejemplo android android-recyclerview horizontal-scrolling

lista - Android Horizontal RecyclerView scroll Direction



recyclerview android studio ejemplo (6)

Hice un RecyclerView horizontal y funciona bien (gracias a this ) pero la dirección del desplazamiento y los datos se expanden de izquierda a derecha; entonces, ¿cómo puedo cambiar la dirección de desplazamiento de RecyclerView como en la imagen de abajo?

Mi código:

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


Prueba esto

He intentado todas las respuestas anteriores y me muestra la misma vista de reciclador vertical, así que he intentado con otro ejemplo.

  1. Inicializar el adaptador

    private Adapter mAdapter;

  2. configura el adaptador de esta manera

    mAdapter = new Adapter(); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false); recycler_view.setLayoutManager(linearLayoutManager); recycler_view.setAdapter(mAdapter);

Espero que esto también funcione para usted Para el código completo, por favor consulte this enlace


Prueba esto en fragmento

layoutManager = new LinearLayoutManager (getActivity (), LinearLayoutManager.HORIZONTAL, false);


Puedes hacerlo solo con xml.

la aplicación: reverseLayout = "true" hace el trabajo!

<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" />


RecyclerView horizontal con vista de imagen y vista de texto

archivo 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" />

Clase de Java

ActividadMaim.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); }}

Clase 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};}


Solo agregue dos líneas de código para hacer la orientación de recyclerview como horizontal. Así que agregue estas líneas al inicializar Recyclerview.

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false); my_recycler.setLayoutManager(linearLayoutManager);


Suponiendo que use LinearLayoutManager en su RecyclerView, entonces puede pasar true como tercer argumento en el constructor LinearLayoutManager .

Por ejemplo:

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

Si está utilizando el StaggeredGridLayoutManager , entonces puede usar el método setReverseLayout que proporciona.