RecyclerView实现横向滚动效果

 更新时间:2021年01月02日 09:11:05   作者:" 霎那凝眸,三生不忘゛  
这篇文章主要为大家详细介绍了RecyclerView实现横向滚动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了RecyclerView实现横向滚动效果的具体代码,供大家参考,具体内容如下

布局文件

<LinearLayout 
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".RecyclerViewActivity">
  <androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dp"/>

</LinearLayout>

Item

android:layout_width="100dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_margin="5dp">
<ImageView
    android:id="@+id/iv_recyclerview_imag"
    android:layout_width="wrap_content"
    android:layout_height="100dp" />
 <TextView
    android:id="@+id/tv_recyclerview_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="老虎"
    android:textSize="17sp"
    android:layout_gravity="center"
    android:textStyle="bold"
    android:padding="3dp"/>

</LinearLayout>

适配器

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {
  private List<Animal> animalList;
  private int resource;

  public RecyclerViewAdapter(List<Animal> animalList, int resource) {
    this.animalList = animalList;
    this.resource = resource;
  }

  @NonNull
  @Override
  public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext()).inflate(resource,parent,
        false);
    ViewHolder holder = new ViewHolder(itemView);
    return holder;
  }

  @Override
  public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    Animal animal = animalList.get(position);
    holder.animalImag.setImageResource(animal.getImageId());
    holder.animalName.setText(animal.getName());

  }

  @Override
  public int getItemCount() {
    return animalList.size();
  }

  static class ViewHolder extends RecyclerView.ViewHolder{
     ImageView animalImag;
     TextView animalName;
     public ViewHolder(View itemView){
       super(itemView);
       animalImag = itemView.findViewById(R.id.iv_recyclerview_imag);
       animalName = itemView.findViewById(R.id.tv_recyclerview_name);
     }
   }
}

核心代码

public class RecyclerViewActivity extends AppCompatActivity {
  private List<Animal> animalList = new ArrayList<>();
  private RecyclerView recyclerView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_recycler_view);
    recyclerView = findViewById(R.id.recyclerView_view);
    initAnimals();
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    recyclerView.setLayoutManager(linearLayoutManager);
    RecyclerViewAdapter adapter = new RecyclerViewAdapter(animalList,R.layout.recyclerview_item);
    recyclerView.setAdapter(adapter);
  }
  //初始化动物数据
  private void initAnimals() {
      Animal daxaing = new Animal("大象", R.drawable.animal_one);
      animalList.add(daxaing);
      Animal shizi = new Animal( "袋鼠", R.drawable.animal_two);
      animalList.add(shizi);
      Animal daishu = new Animal("二哈", R.drawable.animal_three);
      animalList.add(daishu);
      Animal laohu = new Animal("狮子", R.drawable.animal_four);
      animalList.add(laohu);
      Animal zhu = new Animal("猪", R.drawable.animal_five);
      animalList.add(zhu);
      Animal songshu = new Animal("猴子", R.drawable.animal_six);
      animalList.add(songshu);
      Animal baozi = new Animal("豹子", R.drawable.animal_seven);
      animalList.add(baozi);
      Animal shayu = new Animal("鲨鱼", R.drawable.animal_eight);
      animalList.add(shayu);
  }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android实现获取SERIAL信息的方法

    Android实现获取SERIAL信息的方法

    这篇文章主要介绍了Android实现获取SERIAL信息的方法,涉及Android操作SERIAL的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • Android中区别Drawable Bitmap Canvas Paint

    Android中区别Drawable Bitmap Canvas Paint

    本文主要介绍Android中Drawable Bitmap Canvas Paint 之间的区别,这里对这几个概念做出详细介绍,开发Android游戏的朋友可以参考下
    2016-07-07
  • Android如何在Gradle中更改APK文件名详解

    Android如何在Gradle中更改APK文件名详解

    这篇文章主要介绍了Android如何在Gradle中更改APK文件名的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10
  • Android利用animation-list实现帧动画

    Android利用animation-list实现帧动画

    这篇文章主要为大家详细介绍了Android利用animation-list实现帧动画,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Android viewpage实现禁止滑动的功能

    Android viewpage实现禁止滑动的功能

    这篇文章主要介绍了Android viewpage实现禁止滑动的功能的相关资料,这里附有实现的实例代码,主要还是重新 ViewPage 这个类,需要的朋友可以参考下
    2016-11-11
  • android 一些工具类汇总

    android 一些工具类汇总

    本文给大家汇总介绍了一些常用的Android工具类,非常的简单实用,有需要的小伙伴可以参考下
    2016-08-08
  • Android Handler机制详解原理

    Android Handler机制详解原理

    Handler主要用于异步消息的处理:当发出一个消息之后,首先进入一个消息队列,发送消息的函数即刻返回,而另外一个部分在消息队列中逐一将消息取出,然后对消息进行处理,也就是发送消息和接收消息不是同步的处理。 这种机制通常用来处理相对耗时比较长的操作
    2021-11-11
  • Android实现简易浏览器遇到问题的解决方法

    Android实现简易浏览器遇到问题的解决方法

    这篇文章主要为大家详细介绍了Android实现简易浏览器遇到的一系列问题的解决方法,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • android新建草稿删除后下次开机还会显示保存的草稿

    android新建草稿删除后下次开机还会显示保存的草稿

    android 新建一个草稿,保存,然后全部删除会话,关机再开机后还会显示保存的草稿,下面与大家分享下具体的解决方法
    2013-06-06
  • 解决Android使用Handler造成内存泄露问题

    解决Android使用Handler造成内存泄露问题

    内存泄露的危害就是会使虚拟机占用内存过高,导致OOM(内存溢出),程序出错。接下来通过本文给大家分享Android使用Handler造成内存泄露问题及解决方法,一起看看吧
    2017-08-08

最新评论