Если запускать view pager из FragmentActivity - слетает Материал Дизайн у кнопок, почему?
Приложение запускается с setContentView(R.layout.view_pager); из FragmentActivity, которое, в свою очередь, в манифесте прописано первым при запуске. В pager'е 3 страницы, у них свои Fragment классы (не знаю хорошее или "новое" ли это решение..), в Fragment классе 3ей страницы прописан Intent переход в MainActivity, в котором setContentView(R.layout.activity_main);. Так вот проблема, в pager'e у кнопок слетел материал дизайн, но если прописать setContentView(R.layout.view_pager); в MainActivity, то всё ок.. Почему?
https://i.stack.imgur.com/3zTzg.png (как слетело)
https://i.stack.imgur.com/GoFGQ.png (как описал 3ий Fragment класс и Intent переход)
Модераторы, почему кликабельные слова не работают, это у меня руки кривые?))
Ответы (1 шт):
Решение: изменил наследование FragmentActivity с androidx.fragment.app.FragmentActivityна AppCompatActivity
Дизайн подтянулся, в принципе логично, материал дизайн то унаследовался от AppCompat)
Кому нужно, полный код FragmentActivity
public class FragmentActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager);
MyAdapter adapter = new MyAdapter(getSupportFragmentManager());
ViewPager viewPager = findViewById(R.id.viewPager);
viewPager.setAdapter(adapter);
}
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager supportFragmentManager) {
super(supportFragmentManager);
}
@Override
public int getCount() {
return 3;
}
@NonNull
@Override
public Fragment getItem(int position) {
switch (position) {
case 1:
return new Fragment2();
case 2:
return new Fragment3();
default:
return new Fragment1();
}
}
}