강력 한 기능 의 Android 스크롤 컨트롤 RecyclerView
8688 단어 Android스크롤 컨트롤RecyclerView
1.현재 프로젝트 의 build.gradle 의 dependencies 패키지 에 copile'com.android.support.recyclerview-v7:xx.x.x'(x 는 현재 최신 버 전)를 추가 합 니 다.
2.레이아웃 에 RecyclerView 컨트롤 을 추가 하고 하위 항목 레이아웃 과 어댑터 류 를 만 듭 니 다.
3.어댑터 만 들 기
4.데이터 원본 정의
5.findViewById 를 통 해 RecylerView 목록 컨트롤 찾기
6.setLayoutManager()를 통 해 RecylerView 에 레이아웃 관리 자 를 설정 합 니 다.
7.setAdapter()를 통 해 어댑터 설정**
다음은 코드 나 그림 을 이용 하여 모든 절 차 를 자세하게 설명 하 겠 습 니 다.
**첫 번 째 단계:현재 프로젝트 의 build.gradle 의 dependencies 패키지 에 copile'com.android.support.recyclerview-v7:xx.x.x'(x 는 현재 최신 버 전)를 추가 합 니 다.
Android 는 RecyclerView 를 슈퍼 port 라 이브 러 리 에 정의 하기 때문에 이 컨트롤 을 사용 하려 면 해당 하 는 의존 라 이브 러 리 를 추가 해 야 합 니 다.그래서 첫 번 째 조작 이 있 었 습 니 다.여기 서 라 이브 러 리 의존 을 추가 하 는 두 가지 방법 을 소개 합 니 다.**
1.파일 에 직접 수 동 으로 추가 하고 절차 도 수 동 으로 추가 합 니 다.
추가 가 완료 되면 저장 하고 아래 Sync Now 를 누 르 면 동기 화 됩 니 다.뭐?뭐?Sync Now 어디 있 는 지 몰라 요?0.0
2.레이아웃 파일 열기:
시스템 이 추가 되 었 을 때 레이아웃 인터페이스 에 아무것도 없다 는 것 을 알 게 될 것 입 니 다.조급해 하지 마 세 요!이 때 옵션 표시 줄 에서 RecyclerView 컨트롤 을 레이아웃 에 끌 어 다 놓 으 면 다음 화면 이 나타 납 니 다.라 이브 러 리 의존 도 를 추가 하 는 데 성공 했다 는 것 을 증명 합 니 다.RecyclerView 컨트롤 을 사용 할 수 있 습 니 다.
첫 번 째 방법 에 비해 두 번 째 방법 은 비교적 편리 하 다.현재 버 전 을 수 동 으로 입력 하고 알 필요 가 없 으 며 오류 율 이 적다.
두 번 째 단계:레이아웃 에 RecyclerView 컨트롤 을 추가 하고 하위 항목 레이아웃 과 어댑터 류 를 만 듭 니 다.사실 첫 번 째 단 계 는 이미 말 했 듯 이 컨트롤 을 레이아웃 인터페이스 로 끌 어 오 면 됩 니 다.
-그러면 레이아웃 코드 를 찾 아 보 겠 습 니 다.레이아웃 코드 에서 다음 과 같은 코드 세 션 을 발견 할 수 있 습 니 다.
얘 들 아,그 특징 을 발 견 했 니?맞 아,바로 RecyclerView 는 어떻게 우리 의 Button,TextView 등 컨트롤 의 머리 라벨 작성 방법 과 다 르 지?그것 은 RecyclerView 가 시스템 SDK 에 내 장 된 것 이 아니 기 때문에 완전한 패키지 경로 이름 android.support.v7.widget.RecyclerView 를 써 야 합 니 다).
주:직접 드래그 하 는 것 은 ID 가 생 성 되 지 않 았 습 니 다.여 기 는 수 동 으로 추가 해 야 합 니 다.RecyclerView 를 수 동 으로 추가 하 는 어린이 라면 가방 이름 경 로 를 적어 야 합 니 다.
레이아웃 파일 에 RecyclerView 의 하위 항목 레이아웃 을 만들어 야 합 니 다.코드 는 다음 과 같 습 니 다.
실 현 된 미리 보기 효 과 는 여기 서 화면 을 왼쪽 은 그림 이 고 오른쪽 은 문자 입 니 다.
Fruit 실체 클래스 를 만 들 고 구조 기와 재 작성 get()방법 을 추가 합 니 다.
마지막 으로 FruitAdapter 어댑터 의 종 류 를 만 들 고 어댑터 가 RecyclerView 를 계승 하도록 합 니 다.Adapter 는 범 형 을 FruitAdapter.ViewHolder 로 지정 합 니 다.그 중에서 View Holder 는 우리 FruitAdapter 에서 정의 하 는 내부 클래스 입 니 다.그리고 다시 쓰기:onCreateViewHolder(),onBindViewHolder(),getItemCount()세 가지 방법.모든 코드 는 다음 과 같 습 니 다:
public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {
//
private List<Fruit> mFruitList;
//
public FruitAdapter(List<Fruit> FruitList) {
this.mFruitList = FruitList;
}
// ViewHolder
// ①onCreateViewHolder() ViewHolder ,
@Override
public FruitAdapet.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// ViewHolder View ,
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_fruit, parent, false);
// ViewHolder
ViewHolder viewHolder = new ViewHolder(view);
//
return viewHolder;
}
//②onBindViewHolder() RecyclerView ,
@Override
public void onBindViewHolder(final FruitAdapet.ViewHolder holder, int position) {
//
Fruit fruit = mFruitList.get(position);
// holder.ImageView
holder.imageView.setImageResource(fruit.getImageId());
// holder.TextView
holder.textView.setText(fruit.getName());
}
//③getItemCount() RecyclerView
@Override
public int getItemCount() {
return mFruitList.size();
}
// ViewHolder RecyclerView.ViewHolder
class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
TextView textView;
// ViewHolder
public ViewHolder(View itemView) {
super(itemView);
// View findViewById
imageView = (ImageView) itemView.findViewById(R.id.imageView);
textView = (TextView) itemView.findViewById(R.id.textView);
}
}
}
이상 은 어댑터 FruitAdapter 의 코드 입 니 다.코드 에 주석 이 있 습 니 다.어린이 들 이 이해 할 수 있 을 거 라 고 믿 습 니 다!마지막 단 계 는 모두 MainActivity 에서 작 성 된 것 입 니 다.우 리 는 따로 설명 하지 않 고 코드 를 직접 붙 입 니 다.그러면 더욱 한눈 에 알 수 있 습 니 다.모든 코드 에 주석 이 있 습 니 다.이해 하기 어렵 지 않 을 것 이 라 고 믿 습 니 다.
3.MainActivity 에서 데이터 원본 4 정의 어댑터 정의
5.findViewById 를 통 해 RecylerView 목록 컨트롤 찾기
6.setLayoutManager()를 통 해 RecylerView 에 레이아웃 관리 자 를 설정 합 니 다.
7.어댑터 만 들 기
8.setAdapter()를 통 해 어댑터 설정
public class MainActivity extends AppCompatActivity {
private List<Fruit> fruitList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// : ,
fruitData();
// :
FruitAdapet adapet = new FruitAdapet(fruitList);
// :
RecyclerView recyclerView= (RecyclerView) findViewById(R.id.recyclerView);
// : setLayoutManager() RecylerView
//
// :(this,LinearLayoutManager.HORIZONTAL, false);
LinearLayoutManager linearLayoutManager=new LinearLayoutManager(this,
LinearLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(linearLayoutManager);
// :
recyclerView.setAdapter(adapet);
}
public void fruitData() {
//
fruitList = new ArrayList<>();
// , ,
Fruit apple = new Fruit(" ", R.drawable.apple);
fruitList.add(apple);
Fruit banana = new Fruit(" ", R.drawable.banana);
fruitList.add(banana);
Fruit apple1 = new Fruit(" ", R.drawable.apple);
fruitList.add(apple);
Fruit banana1 = new Fruit(" ", R.drawable.banana);
fruitList.add(banana);
Fruit apple2 = new Fruit(" ", R.drawable.apple);
fruitList.add(apple);
Fruit banana2 = new Fruit(" ", R.drawable.banana);
fruitList.add(banana);
Fruit apple3 = new Fruit(" ", R.drawable.apple);
fruitList.add(apple);
Fruit banana3 = new Fruit(" ", R.drawable.banana);
fruitList.add(banana);
Fruit apple4 = new Fruit(" ", R.drawable.apple);
fruitList.add(apple);
Fruit banana4 = new Fruit(" ", R.drawable.banana);
fruitList.add(banana);
}
}
자,RecyclerView 의 기본 코드 는 이 렇 습 니 다.참고 하 시기 바 랍 니 다.사실 RecyclerView 와 클릭 이벤트 가 있 는데 저 는 여기에 쓰 지 않 았 습 니 다.후기 에 친구 들 이 필요 하면 추가 할 수 있 습 니 다.
사실 이것 도 폭포 흐름 효 과 를 실현 하 는 코드 입 니 다.만약 에 우리 가 폭포 흐름 효 과 를 실현 하려 면 하위 항목 의 구 조 를 그림 만 표시 하 는 것 으로 설정 하고(폭포 흐름 은 크기 가 다른 그림 을 사용 해 야 더 좋 은 효 과 를 볼 수 있 습 니 다)구조 파 라미 터 를 조정 하면 됩 니 다.레이아웃 설정 레이아웃 관리 에 다음 코드 를 설정 합 니 다.
//
//
StaggeredGridLayoutManager layoutManager=new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
실행 효 과 는 다음 과 같 습 니 다.상하 스크롤 을 실현 할 수 있 습 니 다.읽 어 주 셔 서 감사합니다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.