Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Кашина_РМП_ЛБ15_2

.docx
Скачиваний:
0
Добавлен:
22.09.2026
Размер:
100 Кб
Скачать
☆

Министерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Владимирский государственный университет

имени Александра Григорьевича и Николая Григорьевича Столетовых» (ВлГУ)

Колледж инновационных технологий и предпринимательства

КАФЕДРА ФИЗИКИ И ПРИКЛАДНОЙ МАТЕМАТИКИ

Лабораторная работа № 15_2

по МДК 01.03 «Разработка мобильных приложений»

на тему: «ViewPager в Андроид »

Выполнил

студент группы ИПсп-123

Кашина Д. А.

Принял

Красильщикова В.В.

Владимир, 2026 г.

Цель работы: получить практические навыки работы с ViewPager в AndroidStudio.

Ход работы:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout 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="match_parent"> <com.google.android.material.appbar.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <!-- Добавляем текстовое поле с информацией о разработчике --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:padding="8dp"> <TextView android:id="@+id/tvAuthor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Автор: Кашина Д. А." android:textColor="@android:color/white" android:textSize="16sp" android:textStyle="bold" /> <TextView android:id="@+id/tvGroup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Группа: ИПсп-123" android:textColor="@android:color/white" android:textSize="14sp" /> </LinearLayout> </androidx.appcompat.widget.Toolbar> <com.google.android.material.tabs.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabMode="fixed" app:tabGravity="fill" /> </com.google.android.material.appbar.AppBarLayout> <androidx.viewpager.widget.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </androidx.coordinatorlayout.widget.CoordinatorLayout>

fragment_apple.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Яблоко" android:textSize="40sp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout>

fragment_banana.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Банан" android:textSize="40sp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout>

fragment_grape.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Виноград" android:textSize="40sp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout>

fragment_orange.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Апельснин" android:textSize="40sp" android:textStyle="bold" android:layout_centerInParent="true"/> </RelativeLayout>

MainActivity.java

package com.example.viewpager; import android.graphics.PorterDuff; import android.os.Bundle; import android.widget.TextView; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.Toolbar; import androidx.viewpager.widget.ViewPager; import com.google.android.material.tabs.TabLayout; import java.util.ArrayList; import java.util.List; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; public class MainActivity extends AppCompatActivity { private TabLayout tabLayout; private ViewPager viewPager; private TextView tvAuthor, tvGroup; private int[] tabIcons = { R.drawable.apple, R.drawable.orange, R.drawable.grape, R.drawable.banan }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); // Находим TextView для информации о разработчике tvAuthor = findViewById(R.id.tvAuthor); tvGroup = findViewById(R.id.tvGroup); // Можно добавить обработчик клика (по желанию) tvAuthor.setOnClickListener(v -> { // Например, показать Toast с дополнительной инфой android.widget.Toast.makeText(MainActivity.this, "Лабораторная работа №15_2", android.widget.Toast.LENGTH_SHORT).show(); }); viewPager = findViewById(R.id.viewpager); setupViewPager(viewPager); tabLayout = findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); // Отключаем перекрашивание иконок tabLayout.setTabIconTint(null); setupTabIcons(); } private void setupTabIcons() { tabLayout.getTabAt(0).setIcon(tabIcons[0]); tabLayout.getTabAt(1).setIcon(tabIcons[1]); tabLayout.getTabAt(2).setIcon(tabIcons[2]); tabLayout.getTabAt(3).setIcon(tabIcons[3]); } private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); adapter.addFragment(new AppleFragment(), "APPLE"); adapter.addFragment(new OrangeFragment(), "ORANGE"); adapter.addFragment(new GrapesFragment(), "GRAPES"); adapter.addFragment(new BananaFragment(), "BANANA"); viewPager.setAdapter(adapter); } static class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } }

AppleFragment.java

package com.example.viewpager; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class AppleFragment extends Fragment { public AppleFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_apple, container, false); } }

BananaFragment.java

package com.example.viewpager; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class BananaFragment extends Fragment { public BananaFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_banana, container, false); } }

GrapesFragment.java

package com.example.viewpager; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class GrapesFragment extends Fragment { public GrapesFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_grape, container, false); } }

OrangeFragment.java

package com.example.viewpager; import android.os.Bundle; import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class OrangeFragment extends Fragment { public OrangeFragment() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_orange, container, false); } }

Результат работы программы

Вывод: в ходе лабораторной работы были получены практические навыки работы с ViewPager в AndroidStudio.