@jett
Для создания прокрутки всего списка в Android вы можете использовать класс RecyclerView
. Вот пример шагов:
- В зависимостях вашего проекта добавьте следующую строку:
1
|
implementation 'androidx.recyclerview:recyclerview:1.2.1'
|
- Создайте макет вашего элемента списка list_item.xml. Например, это может быть TextView:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?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"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
|
- Создайте макет вашего активити или фрагмента, где будет размещен RecyclerView:
1
2
3
4
5
6
7
8
9
10
11
|
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
|
- В вашей активити или фрагменте найдите RecyclerView и установите для него менеджер макета и адаптер:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
RecyclerView recyclerView = findViewById(R.id.recyclerView);
// Устанавливаем менеджер макета (например, LinearLayoutManager для вертикальной прокрутки)
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// Создаем список данных
List<String> data = new ArrayList<>();
// Заполняем список данными
// ...
// Создаем адаптер и устанавливаем его для RecyclerView
MyAdapter adapter = new MyAdapter(data);
recyclerView.setAdapter(adapter);
|
- Создайте класс адаптера, расширяющий RecyclerView.Adapter:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> data;
public MyAdapter(List<String> data) {
this.data = data;
}
// Создаем внутренний класс ViewHolder, который содержит ссылки на все элементы вашего элемента списка
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
// Создаем ViewHolder при необходимости и привязываем данные к нему
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.list_item, parent, false);
return new ViewHolder(view);
}
// Привязываем данные к ViewHolder
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String item = data.get(position);
holder.textView.setText(item);
}
// Возвращаем количество элементов в списке
@Override
public int getItemCount() {
return data.size();
}
}
|
Теперь ваш RecyclerView
должен позволять прокрутку всего списка.