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

}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기