RecyclerView 안에 RecyclerView를 넣어보는 방법을 알아보겠습니다.
이번에는 메인에 하나 만들고 다음 포스팅에 그 안에 또 넣겠습니다.
- 설명 -
1. CardView로 모양을 잡고, LinearLayout를 통해 세로 방향으로 TextView와 RecyclerView를 보여줍니다.
2. TextView에는 아이템명이 들어가고 , RecyclerView에는 또 다른 리스트 데이터를 보여줍니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="15dp"
app:cardElevation="15dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_purple"
android:orientation="vertical">
<TextView
android:id="@+id/itemName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:gravity="center"
android:text="Item New"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/childRV"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
2022.01.01 - [안드로이드] - [안드로이드 스튜디오] 레이아웃 추가하는 방법
- 설명 -
MainActivity에서 받은 데이터와 parent_row_layout 화면을 이어주는 클래스입니다.
public class ParentAdapter extends RecyclerView.Adapter<ParentAdapter.MyViewHolder> {
ArrayList<String> parentArrayList;
Context context;
public ParentAdapter(ArrayList<String> parentArrayList, Context context) {
this.parentArrayList = parentArrayList;
this.context = context;
}
//화면 생성
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.parent_row_layout, parent, false);
return new MyViewHolder(view);
}
//데이터 셋팅
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
holder.itemName.setText(parentArrayList.get(position));
}
@Override
public int getItemCount() {
return parentArrayList.size();
}
public class MyViewHolder extends RecyclerView.ViewHolder{
TextView itemName;
RecyclerView childRV;
public MyViewHolder(@NonNull View itemView) {
super(itemView);
itemName = itemView.findViewById(R.id.itemName);
childRV = itemView.findViewById(R.id.childRV);
}
}
}
2021.12.31 - [안드로이드] - [안드로이드 스튜디오] 자바 클래스 생성하는 방법
- 설명 -
RecyclerView만 있는 간단한 화면입니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_custom_calendar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/parentRV"/>
</LinearLayout>
- 설명 -
ParentAdapter에 데이터를 넘겨주고 RecyclerView에 ParentAdapter 를 적용합니다.
public class MainActivity extends AppCompatActivity{
ArrayList<String> monthList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//데이터 생성
createData();
RecyclerView recyclerView = findViewById(R.id.parentRV);
//레이아웃 초기화
RecyclerView.LayoutManager manager = new LinearLayoutManager(MainActivity.this);
//레이아웃 적용
recyclerView.setLayoutManager(manager);
//사이즈 셋팅
recyclerView.setHasFixedSize(true);
//어뎁터 초기화
ParentAdapter adapter = new ParentAdapter(monthList, MainActivity.this);
//어뎁터 적용
recyclerView.setAdapter(adapter);
}//onCreate
private void createData() {
//초기화
monthList = new ArrayList<>();
for(int i = 1; i < 13; i++){
monthList.add(i + "월");
}
}
}//MainActivity
2022.04.19 - [안드로이드] - [안드로이드] 커스텀 달력 만드는 방법 part1 화면 구성
2022.03.02 - [안드로이드] - [안드로이드] SQLite RecyclerView 연락처 만드는 방법 part1 - 조회
2022.01.12 - [안드로이드] - [안드로이드] RecyclerView 아이템 클릭 상세화면 보여주는 방법
[안드로이드] LineChart 만드는 방법 part1 - 기본 구현 (0) | 2022.04.29 |
---|---|
[안드로이드] RecycelrView 안에(중첩) RecycelrView 만드는 방법 part2 (0) | 2022.04.28 |
[안드로이드] 커스텀 달력 만드는 방법 part8 이번 달만 색상 변경하기 (5) | 2022.04.26 |
[안드로이드] 커스텀 달력 만드는 방법 part7 달력 표시 변경하기 (1) | 2022.04.25 |
[안드로이드] 커스텀 달력 만드는 방법 part6 오늘 날짜 색상 변경하기 (0) | 2022.04.24 |
댓글 영역