слайдер изображений внутри фрагментов - PullRequest
0 голосов
/ 12 ноября 2018

Я использую вид пейджер для создания вкладок в моем приложении.Все фрагменты содержат переработчик зрения.две из них имеют сеточную разметку, а одна - линейную разметку для представления типа списка.

  1. загрузка базы данных занимает много времени при открытии приложения (приблизительно 15/25 секунд).).Это связано с моим сетевым подключением или инфлятор макета как-то связан с этим?

  2. Я хочу добавить автоматический слайдер изображений во второй фрагмент (который имеет вид сетки).Конкретные коды просмотра приведены ниже.

    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    
    viewThree = inflater.inflate(R.layout.fragment_three, container, false);
    int mNoOfColumns = Utility.calculateNoOfColumns(getContext());
    gridLayoutManager = new GridLayoutManager(getContext(),mNoOfColumns);
    
    RecyclerView firebaseRecyclerView = (RecyclerView) viewThree.findViewById(R.id.recyclerview_threeFragment1);
    firebaseRecyclerView.setHasFixedSize(true);
    firebaseAdapter1 = new firebaseAdapter(getContext(), list);
    firebaseRecyclerView.setLayoutManager(gridLayoutManager);
    firebaseRecyclerView.setAdapter(firebaseAdapter1);
    

Я не уверен, как использовать viewpager для добавления слайдера изображений в этом фрагменте.

Mainactivity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

    FirebaseApp.initializeApp(this);
    // write codes for tab
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    viewPager = (ViewPager) findViewById(R.id.viewpager);
    setupViewPager(viewPager);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
}


private void setupViewPager(ViewPager viewPager) {
    ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

    adapter.addFragment(new OneFragment(), "one");
    adapter.addFragment(new TwoFragment(), "two");
    adapter.addFragment(new ThreeFragment(), "THREE");
    adapter.addFragment(new FourFragment(), "four");
    viewPager.setAdapter(adapter);
}

class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();
    private final List<String> mFragmentTitleList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @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);
    }
}

Можете ли вы предложить какой-нибудь способ добиться этого?

...