How to build a Horizontal ListView with RecyclerView?

前端 未结 13 1023
小鲜肉
小鲜肉 2020-11-22 04:53

I need to implement a horizontal listview in my Android application. I did a bit of research and came across How can I make a horizontal ListView in Android? and Horizontal

相关标签:
13条回答
  • 2020-11-22 05:39

    There is a RecyclerView subclass named HorizontalGridView you can use it to have horizontal direction. VerticalGridView for vertical direction

    0 讨论(0)
  • 2020-11-22 05:40

    It's for both for Horizontal and for Vertical.

    RecyclerView recyclerView;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test_recycler);
        recyclerView = (RecyclerView)findViewById(R.id.recyclerViewId);
    
        RecyclAdapter adapter = new RecyclAdapter();
    
        //Vertical RecyclerView
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
        recyclerView.setLayoutManager(mLayoutManager);
    
        //Horizontal RecyclerView
        //recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(),LinearLayoutManager.HORIZONTAL,false));
    
        recyclerView.setAdapter(adapter);
    
    }
    
    0 讨论(0)
  • 2020-11-22 05:41

    Recycler View in Horizontal Dynamic.

    Recycler View Implementation

    RecyclerView musicList = findViewById(R.id.MusicList);
    
    // RecyclerView musiclist = findViewById(R.id.MusicList1);
    // RecyclerView musicLIST = findViewById(R.id.MusicList2);
    LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
    musicList.setLayoutManager(layoutManager);
    
    String[] names = {"RAP", "CH SHB", "Faheem", "Anum", "Shoaib", "Laiba", "Zoki", "Komal", "Sultan","Mansoob Gull"};
    musicList.setAdapter(new ProgrammingAdapter(names));'
    

    Adapter class for recycler view, in which there is is a view holder for holding view of that recycler

    public class ProgrammingAdapter 
         extendsRecyclerView.Adapter<ProgrammingAdapter.programmingViewHolder> {
    
    private String[] data;
    
    public ProgrammingAdapter(String[] data)
    {
        this.data = data;
    }
    
    @Override
    public programmingViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        LayoutInflater inflater = LayoutInflater.from(parent.getContext());
        View view = inflater.inflate(R.layout.list_item_layout, parent, false);
    
        return new programmingViewHolder(view);
    }
    
    @Override
    public void onBindViewHolder(@NonNull programmingViewHolder holder, int position) {
        String title = data[position];
        holder.textV.setText(title);
    }
    
    @Override
    public int getItemCount() {
        return data.length;
    }
    
    public class programmingViewHolder extends RecyclerView.ViewHolder{
        ImageView img;
        TextView textV;
        public programmingViewHolder(View itemView) {
            super(itemView);
            img =  itemView.findViewById(R.id.img);
            textV =  itemView.findViewById(R.id.textt);
        }
    }
    
    0 讨论(0)
  • 2020-11-22 05:43
     <android.support.v7.widget.RecyclerView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            app:layoutManager="android.support.v7.widget.LinearLayoutManager" />
    
    0 讨论(0)
  • 2020-11-22 05:43

    If you want to use a RecyclerView with the GridLayoutManager, this is the way to achieve horizontal scroll.

    recyclerView.setLayoutManager(
    new GridLayoutManager(recyclerView.getContext(), rows, GridLayoutManager.HORIZONTAL, false));
    
    0 讨论(0)
  • 2020-11-22 05:46

    Is there a better way to implement this now with Recyclerview now?

    Yes.

    When you use a RecyclerView, you need to specify a LayoutManager that is responsible for laying out each item in the view. The LinearLayoutManager allows you to specify an orientation, just like a normal LinearLayout would.

    To create a horizontal list with RecyclerView, you might do something like this:

    LinearLayoutManager layoutManager
        = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
    
    RecyclerView myList = (RecyclerView) findViewById(R.id.my_recycler_view);
    myList.setLayoutManager(layoutManager);
    
    0 讨论(0)
提交回复
热议问题