Я пытаюсь использовать TabLayout, соединенный с ViewPager, чтобы создать три фрагмента с возможностью пролистывания.Однако я столкнулся с проблемой: Я хочу, чтобы TabLayout находился внизу экрана, но ViewPager заставляет его находиться сверху .
Раньше TabLayout находился в android.support.design.widget библиотека.Однако эта библиотека была изменена с момента появления androidx.Новая библиотека - com.google.android.material.tabs.TabLayout .
Предыдущие (и устаревшие) записи ( example1 , example2 ) предложить простое решение вышеуказанной проблемы, просто создав вертикальную LinearLayout
и указав ViewPager
и TabLayout
как два отдельных элемента этого LinearLayout
.
Приведенное выше решение больше не является жизнеспособнымиз-за того, что теперь вы должны указать TabLayout
как элемент внутри ViewPager
( ссылка ), например:
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="48dp"
>
</com.google.android.material.tabs.TabLayout>
</androidx.viewpager.widget.ViewPager>
Затем, чтобы«объединить» ViewPager
с TabLayout
, метод setupWithViewPager(ViewPager vp)
должен быть вызван на экземпляре TabLayout
:
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
MainPagerAdapter mpa = new MainPagerAdapter(getSupportFragmentManager(), 3);
viewPager.setAdapter(mpa);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
Теперь, как я могу аккуратно сделать TabLayoutперейти к нижней части ViewPager, из кода XML или программно?