RecyclerView 는 세로 와 가로 스크롤 을 실현 합 니 다.
9337 단어 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 는 세로 와 가로 스크롤 을 실현 합 니 다.이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android】RecyclerView+RadioButton의 작성RadioGroup을 사용하지 않고 작성합니다. RecyclerView 배치 activity_main.xml RadioButton 배치 view_item.xml RecyclerView 용 어댑터 작성. 어느 버튼을 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.