RecyclerView 는 세로 와 가로 스크롤 을 실현 합 니 다.

자신 이 나중에 공부 하 는 것 을 편리 하 게 하기 위해 자신 이 기록 하고 공부 하 는 것 을 여러분 도 참고 할 수 있 습 니 다.어떤 문제 가 있 으 면 함께 토론 할 수 있 습 니까?
오늘 은 RecyclerView 를 배 워 서 데이터 수직 스크롤 과 데이터 가로 스크롤 을 실현 합 니 다.먼저 위의 그림 을 존경 합 니 다.

사용 하 는 도구:Android Studio
세로 스크롤
1.의존 라 이브 러 리 추가:
app/build.gradle 파일 을 열 고 dependencies 패키지 에 다음 내용 을 추가 합 니 다(copile'com.android.support:recyclerview-v7:24.2.1'을 추가 합 니 다)

dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
 exclude group: 'com.android.support', module: 'support-annotations'
 })
 compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
 compile 'com.android.support:recyclerview-v7:24.2.1'
 testCompile 'junit:junit:4.12'
}
추가 후 Sync Now 를 눌 러 동기 화 하기;
2、activity 수정main.xml 의 코드:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context="com.example.dell.practice_recyclerview.MainActivity">
<android.support.v7.widget.RecyclerView
 android:id="@+id/id_recycler_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
</android.support.v7.widget.RecyclerView>
 
</LinearLayout>
RecyclerView 는 시스템 SDK 에 내 장 된 것 이 아니 기 때문에 완전한 패키지 경 로 를 써 야 합 니 다.
3.새 실체 클래스 입 니 다.여 기 는 Book 클래스 를 프 리 젠 테 이 션 으로 합 니 다.

package com.example.dell.practice_recyclerview;
 
/**
 * Created by dell on 2018/6/3.
 * Created by qiyueqing on 2018/6/3.
 */
 
public class Book {
 private String name;
 private int imageId;
 
 public Book(String name, int imageId) {
 this.name = name;
 this.imageId = imageId;
 }
 
 public String getName() {
 return name;
 }
 
 public int getImageId() {
 return imageId;
 }
}
4.ListView 의 하위 항목 에 사용자 정의 레이아웃 을 만 듭 니 다.
layot 디 렉 터 리 에 책 새로 만 들 기item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
 android:layout_width="match_parent"
 android:layout_height="wrap_content">
 
 <ImageView
 android:id="@+id/id_book_image"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"/>
 <TextView
 android:id="@+id/id_book_name"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_vertical"
 android:layout_marginLeft="10dp"/>
</LinearLayout>
5.RecyclerView 를 위 한 어댑터 준비 하기:
이 클래스 를 RecyclerView.Adapter 에 계승 하고 범 형 을 BookAdapter.ViewHolder 로 지정 합 니 다.
내부 클래스 ViewHolder 를 사용자 정의 합 니 다.내부 의 구조 적 매개 변 수 는 view 매개 변수 로 전 송 됩 니 다.이 매개 변 수 는 RecyclerView 의 가장 바깥쪽 구조 입 니 다.그러면 findViewById()를 통 해 화물 채널 레이아웃 에 있 는 ImageView 와 TextView 의 인 스 턴 스 를 통 해 얻 을 수 있 습 니 다.
BookaAdapter 의 구조 함수 입 니 다.이 방법 은 보 여 드릴 데이터 원본 이 들 어 오고 전역 변수 mBookaAdapter 에 값 을 부여 합 니 다.우리 가 이 어 갈 모든 작업 은 이 데이터 원본 을 바탕 으로 진 행 됩 니 다.세 가지 방법 다시 쓰기;

package com.example.dell.practice_recyclerview;
 
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
 
import java.util.List;
 
/**
 * Created by dell on 2018/6/3.
 * Created by qiyueqing on 2018/6/3.
 */
 
public class BookAdapter extends RecyclerView.Adapter<BookAdapter.ViewHolder>{
 
 private List<Book> mBookList;
 static class ViewHolder extends RecyclerView.ViewHolder{
 ImageView bookImage;
 TextView bookName;
 public ViewHolder(View view){
  super(view);
  bookImage=view.findViewById(R.id.id_book_image);
  bookName=view.findViewById(R.id.id_book_name);
 }
 }
 
 public BookAdapter(List<Book> bookList){
 mBookList=bookList;
 }
 @Override
 public BookAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
 View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.book_item,parent,false);
 RecyclerView.ViewHolder holder=new ViewHolder(view);
 return (ViewHolder) holder;
 }
 
 @Override
 public void onBindViewHolder(BookAdapter.ViewHolder holder, int position) {
 Book book=mBookList.get(position);
 holder.bookImage.setImageResource(book.getImageId());
 holder.bookName.setText(book.getName());
 }
 
 @Override
 public int getItemCount() {
 return mBookList.size();
 }
}
6.MainActivity 의 코드 수정:

package com.example.dell.practice_recyclerview;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
 private List<Book> bookList=new ArrayList<>();
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 initBooks();
 RecyclerView recyclerView= (RecyclerView) findViewById(R.id.id_recycler_view);
 LinearLayoutManager layoutManager=new LinearLayoutManager(this); //LinearLayoutManager              ,                             
 
 //    ,   vertical(    ),             
 //layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
 recyclerView.setLayoutManager(layoutManager);
 BookAdapter adapter=new BookAdapter(bookList);
 recyclerView.setAdapter(adapter);
 }
 
 private void initBooks(){
 for (int i=1;i<11;i++){
  Book book=new Book("    "+i,R.drawable.icon_book);
  bookList.add(book);
 }
 }
}
이때 운행 하면 수직 전시 사례 를 볼 수 있다.
가로 스크롤 실현:
북 수정item 의 코드:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="100dp"
 android:layout_height="wrap_content">
 
 <ImageView
 android:id="@+id/id_book_image"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"/>
 <TextView
 android:id="@+id/id_book_name"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center_horizontal"
 android:layout_marginLeft="10dp"/>
</LinearLayout>
2.MainActivity 의 코드 수정

package com.example.dell.practice_recyclerview;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
 
import java.util.ArrayList;
import java.util.List;
 
public class MainActivity extends AppCompatActivity {
 
 private List<Book> bookList=new ArrayList<>();
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 initBooks();
 RecyclerView recyclerView= (RecyclerView) findViewById(R.id.id_recycler_view);
 LinearLayoutManager layoutManager=new LinearLayoutManager(this); //LinearLayoutManager              ,                             
 
 //    ,   vertical(    ),             
 layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
 recyclerView.setLayoutManager(layoutManager);
 BookAdapter adapter=new BookAdapter(bookList);
 recyclerView.setAdapter(adapter);
 }
 
 private void initBooks(){
 for (int i=1;i<11;i++){
  Book book=new Book("    "+i,R.drawable.icon_book);
  bookList.add(book);
 }
 }
}
예 다운로드 주소:RecyclerView 는 세로 와 가로 스크롤 을 실현 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기