Android Horizontal RecyclerView scroll Direction

前端 未结 12 2064
忘掉有多难
忘掉有多难 2020-12-12 16:26

I made a Horizontal RecyclerView and it works fine(thanks to this) but the direction of scroll and data are expand from left to right; then How can I change the RecyclerView

相关标签:
12条回答
  • 2020-12-12 16:52

    In Recycler Layout manager the second parameter is spanCount increase or decrease in span count will change number of elements show on your screen

        RecyclerView.LayoutManager mLayoutManager = new GridLayoutManager(this, 2, //The number of Columns in the grid
    ,GridLayoutManager.HORIZONTAL,false);
                    recyclerView.setLayoutManager(mLayoutManager);
    
    0 讨论(0)
  • 2020-12-12 16:52

    Just add two lines of code to make orientation of recyclerview as horizontal. So add these lines when Initializing Recyclerview.

      LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
    
    my_recycler.setLayoutManager(linearLayoutManager);
    
    0 讨论(0)
  • 2020-12-12 16:53

    It's about Persian language problem, Just need to rotate your ListView, GridView, or .... and after that rotate your cell. You can do it in xml android:rotate="360".

    0 讨论(0)
  • 2020-12-12 16:54
    //in fragment page: 
    
     recyclerView.setLayoutManager(new LinearLayoutManager(this.getActivity(), HORIZONTAL,true));
    
    //this worked for me but before that please import :
    
    implementation 'com.android.support:recyclerview-v7:28.0.0'
    
    0 讨论(0)
  • 2020-12-12 16:56

    This following code is enough

    RecyclerView recyclerView;
    LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,true);
    
     recyclerView.setLayoutManager(layoutManager);
    
    0 讨论(0)
  • 2020-12-12 16:57

    Horizontal RecyclerView with imageview and textview

    xml file

    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 Class

    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 Class

    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};}
    
    0 讨论(0)
提交回复
热议问题